проблема с проверкой формы весной в спящем валидаторе - PullRequest
1 голос
/ 25 августа 2011

У меня проблема с простой формой, которая использует валидацию с помощью валидатора hibenate моя форма:

 <form:form method="POST" commandName="info">

     username:<form:input path="username"/> <form:errors path="username"></form:errors>
     password:<form:password path="password"/><form:errors path="password"></form:errors> 
     <input type="submit" value="add new writer">
  </form:form>

мой контроллер для формы:

@RequestMapping(method=RequestMethod.POST,value={"/createnewuser"})
public String showCreateNewUserFrom( @javax.validation.Valid   Information info,Model model,BindingResult br)
{
    //System.out.println("hello post");
    if(br.hasErrors())
    {

        return "admin/createuserform";
    }
    else
    return "admin/createuserform";
}

моя проблема в том, что моя форма недействительна из-за этого исключения !! Я хочу, чтобы jsp просматривал ошибки

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors
Field error in object 'information' on field 'username': rejected value [vc]; codes [Size.information.username,Size.username,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [information.username,username]; arguments []; default message [username],10,4]; default message [username must be at least 4 and at most 10 character]
Field error in object 'information' on field 'password': rejected value [fg]; codes [Size.information.password,Size.password,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [information.password,password]; arguments []; default message [password],8,5]; default message [username must be at least 5 and at most 8 character]

я буду очень рад любой помощи

1 Ответ

0 голосов
/ 29 августа 2011

Из документации :

Параметры Errors или BindingResult должны следовать за объектом модели, который привязывается немедленно, поскольку сигнатура метода может иметь более одного объекта модели и Springсоздаст отдельный экземпляр BindingResult для каждого из них [...] Чтобы это работало, вам нужно изменить порядок параметров [...]

Похож на ваш случай ..

...