1

我在 spring 中使用了一个简单的表单,它使用 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]

我会非常感谢任何帮助

4

1 回答 1

0

文档

Errors 或 BindingResult 参数必须遵循立即绑定的模型对象,因为方法签名可能有多个模型对象,并且 Spring 将为它们中的每一个创建一个单独的 BindingResult 实例 [...]重新排序参数 [...]

看起来像你的情况..

于 2011-08-29T06:47:26.540 回答