jsp 页面怎么得到spring BindingResult 里面的错误消息?

来源:互联网 发布:h5砸金蛋源码 编辑:程序博客网 时间:2024/05/16 14:20
0

jsp 页面怎么得到spring BindingResult 里面的错误消息?20

错误消息要用jstl 来接收,
JSP 页面
Java代码  收藏代码
  1. <form name="users" action="topsoft/save" method="post">  
  2. 客户ID:<input name="userKey" type="text" value="${users.userKey}" />  
  3. 客户名:<input name="name" type="text" value="${users.name }" />  
  4. 客户邮箱:<input name="email" type="text" value="${users.email }" />  
  5. <button type="sunmit">提交</button>  

Users.java
Java代码  收藏代码
  1. public class Users {  
  2.       
  3.     private Long userKey;  
  4.     @NotEmpty(message = "name不能为null")  
  5.     @Size(max=25)  
  6.     private String name;  
  7.     @NotEmpty  
  8.     @Email(message = "email不符合规则")  
  9.     private String email;  
  10.                    ''  
  11.                    ''  
  12.                    ''  
  13.                  get set 方法略  
  14. }  

Controller

Java代码  收藏代码
  1.         @RequestMapping("save")  
  2. public String save( @Valid Users users,BindingResult result) {  
  3.     System.out.println("UserKey:"+users.getUserKey());  
  4.     System.out.println("Email:"+users.getEmail());  
  5.     System.out.println("Name:"+users.getName());  
  6.     if(result.hasErrors()){  
  7.         List<ObjectError> ls=result.getAllErrors();  
  8.         for (int i = 0; i < ls.size(); i++) {  
  9.             System.out.println("error:"+ls.get(i));  
  10.         }  
  11.     }  
  12.     return "adduser";  
  13. }  

用注解式验证之后错误消息也能打印出来了,现在的问题是怎么在jsp页面用JSTL接收每个验证不成功的错误消息呢?

问题补充:下面是  System.out.println("error:"+ls.get(i));  
打印出来的信息,我直接空提交的得到的错误信息
我不要解析这些错误消息 然后塞到request里面,
spring MVC 不是有所有东西都塞到 ModeMap里面了吗, 这些东西应该也在里面吧, 现在问题是我怎么样用JSTL 得到。

Java代码  收藏代码
  1. error:Field error in object 'users' on field 'name': rejected value []; codes [NotEmpty.users.name,NotEmpty.name,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [users.name,name]; arguments []; default message [name]]; default message [name不能为null]  
  2. error:Field error in object 'users' on field 'email': rejected value []; codes [NotEmpty.users.email,NotEmpty.email,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [users.email,email]; arguments []; default message [email]]; default message [may not be empty]  

问题补充:
引用
${users.name }
你users对象怎么注入到jstl中的,错误信息也可以这么注入进去


我不知道前台页面该怎么去取,我现在就想在jstl里面这样来接收 比如:${errors.name}  显示 name不能为null
${errors.email} 显示 may not be empty
引用

        List<FieldError>  err=result.getFieldErrors();
        FieldError fe;
        String field;
        String errorMessage;
        for (int i = 0; i < err.size(); i++) {
            fe=err.get(i);
            field=fe.getField();//得到那个字段验证出错
            errorMessage=fe.getDefaultMessage();//得到错误消息
            System.out.println("错误字段消息:"+field +" : "+errorMessage);
        }
  // 打印结果

错误字段消息:email : may not be empty
错误字段消息:name : name不能为null


后台可以得到具体错误消息了, 我不想解析这些东西,spring MVC 应该已经把这些消息传送到显示层了,问题现在我不知道前台页面怎么读取
原创粉丝点击