2011-01-12 3 views
3

Je veux valider mes entrées, mais je ne peux pas le faire fonctionner: rien apparaître sur la page. Mon projet est en Java 5, donc pas de JSR303 (@Valid). Ma seule solution, si je ne me trompe pas, est d'utiliser BindingResult.Spring 3 MVC: problème avec la forme: erreurs et bindingresult

Mon contrôleur:

@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"); 
    } 
} 

Mon 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> 

Que suis-je manque?

Merci!

Répondre

12

BindingResult.reject() associe un message d'erreur au formulaire dans son ensemble, il peut être affiché par <form:errors/> sans path. Pour associer erreur avec champ de formulaire spécifique, utilisez BindingResult.rejectValue():

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

Il y a aussi aucun problème avec JSR-303 avec Java 5. Vous avez besoin fournisseur JSR-303 et les bibliothèques API dans le classpath, ainsi que dans Java 6 .

+0

rejectValue est! Merci, vous avez sauvé la journée :)) –

Questions connexes