2011-01-12 12 views
3

Ich möchte meine Eingaben validieren, aber ich kann es nicht funktionieren: nichts erscheint auf der Seite. Mein Projekt ist in Java 5, also kein JSR303 (@Valid). Meine einzige Lösung ist, wenn ich mich nicht irre, BindingResult zu verwenden.Spring 3 MVC: Problem mit Formular: Fehler und Bindungsergebnis

Mein Controller:

@Controller 
public class MyController { 

    @RequestMapping(method = RequestMethod.POST, value = "myPage.html") 
    public void myHandler(MyForm myForm, BindingResult result, Model model) { 
     result.reject("field1", "error message 1"); 
    } 
} 

Mein jsp:

<form:form commandName="myForm" method="post"> 
    <label>Field 1 : </label> 
    <form:input path="field1" /> 
    <form:errors path="field1" /> 

    <input type="submit" value="Post" /> 
</form:form> 

Was bin ich?

Danke!

Antwort

12

BindingResult.reject() verknüpft eine Fehlermeldung mit dem Formular als Ganzes, es kann von <form:errors/> ohne path angezeigt werden. Um Fehler mit bestimmtem Formularfeld zuzuordnen, verwenden BindingResult.rejectValue():

result.rejectValue("field1", "messageCode", "Default error message"); 

Auch gibt es keine Probleme mit JSR-303 mit Java 5. Sie benötigen JSR-303-Anbieter und API-Bibliotheken in dem Classpath, sowie in Java 6

+0

rejectValue ist es! Danke, du hast den Tag gerettet :)) –