2009-08-09 8 views

Antwort

12

Der HTML-Formularname wird NICHT als Teil der Anfrage übermittelt. Wenn Sie es benötigen (warum?) Können Sie diese als verdeckte Eingabe einreichen statt:

<form name="myForm" action="/my_servlet"> 
    <input type="hidden" name="htmlFormName" value="myForm"/> 
    ... 

In Ihrem Servlet:

String htmlFormName = request.getParameterValue("htmlFormName"); 
+0

Ich bin damit einverstanden, dass es nicht nötig sein sollte. Kürzlich bin ich auf eine Situation gestoßen, in der mehrere Seiten an denselben Controller übergeben werden. Die Konstruktion ist hässlich, das heißt, Sie müssen wissen, wo Sie hergekommen sind, um die get/post vars zu interpretieren. In diesem speziellen Fall hatte ich die Form Namen kennen, aber da es nicht gebucht wird (wie Sie gesagt haben) hatte ich für Ihren Vorschlag zu gehen (hat gut funktioniert natürlich). Gibt es einen Vortrag zum Thema Entsendung und warum der Name des Formulars nicht übermittelt wurde? (Ich meine, warum nicht?;)) –

+1

@Stefan Ich würde vermuten, dass der Formularname nicht übergeben wird, da das Formular selbst keine Eingabe ist und daher keinem Wert zugeordnet ist - also, was ist der Grund dafür? Aber ich weiß es nicht genau. Was ich weiß ist, dass "Name" ursprünglich hinzugefügt wurde, so dass Formulare von Javascript adressiert werden können und das jetzt durch "ID" -Attribut ersetzt wurde; Tatsächlich ist das Formular "name" -Attribut nicht von HTML 4.01 Strict erlaubt. – ChssPly76

Verwandte Themen