1

Ich frage mich, ob es möglich ist, zu validieren oder zu überprüfen, ob mindestens ein Optionsfeld in einem Formular in einem Servlet ausgewählt wurde?Validieren Sie das Optionsfeld auf der Serverseite mit Hilfe von Servlets

Oder kann diese Art der Validierung nur auf der Client-Seite mit JavaScript usw. auftreten?

Als Workaround kann ich ein Optionsfeld standardmäßig überprüfen, aber im Idealfall möchte ich kein Optionsfeld anfänglich ausgewählt und eine Fehlermeldung anzeigen, wenn der Benutzer versucht, das Formular zu senden.

Ich verwende nur Java-Servlets auf der Web-App, so wäre es toll, wenn jemand dies vor der Verwendung nur Servlets getan hat.

Vielen Dank im Voraus.

Antwort

3

In Ihrem Servlet erhalten Sie den Wert des ausgewählten Radios, wenn sie in derselben Gruppe sind. Wenn der Benutzer kein Radio ausgewählt hat, erhalten Sie null Wert. Sagen wir es in Aktion sehen:

<form method="POST" action="HelloWorldServlet"> 
    <input type="radio" name="sampleRadio" value="val1" />Value 1 
    <br /> 
    <input type="radio" name="sampleRadio" value="val2" />Value 2 
    <br /> 
    <input type="submit" value="Hello Servlet" /> 
</form> 

In der Servlet-Seite:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    String radio = request.getParameter("sampleRadio"); 
    if (radio != null) 
     System.out.println("value of selected radio: " + radio); 
    else 
     System.out.println("no radio button was selected"); 
} 
+0

Das ist große Luiggi, danke. Ich war Ihrer Lösung sehr nahe und habe den gleichen Code verwendet, um die Werte der Optionsfelder in einem Sitzungsobjekt zur späteren Verarbeitung zu speichern. Kennen Sie im Nachhinein die beste Möglichkeit, die Seite mit einem Fehler erneut anzuzeigen und somit die nächste Anfrage nicht zu bearbeiten (wenn ein Optionsfeld ausgewählt wurde)? – elgoog

+0

@elgoog das sollte eine andere Frage :), aber vielleicht brauchen Sie einige Etiketten neben Ihren Radio-Buttons, die nur angezeigt werden müssen, wenn es einen Fehler (eine Sitzungsvariable, die den logischen Wert des Fehlers enthält) und umleiten auf die gleiche Seite mit der Fehlervariable mit dem wahren Wert. –

+0

Ja, das scheint eine gute Lösung zu sein. Danke nochmal Luiggi, deine Hilfe wird sehr geschätzt! – elgoog