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

 我来答
ifeilong
2016-09-17 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:817万
展开全部

错误消息要用jstl 来接收,
JSP 页面


<form name="users" action="topsoft/save" method="post">  
客户ID:<input name="userKey" type="text" value="${users.userKey}" />  
客户名:<input name="name" type="text" value="${users.name }" />  
客户邮箱:<input name="email" type="text" value="${users.email }" />  
<button type="sunmit">提交</button>


Users.java


public class Users {  
      
    private Long userKey;  
    @NotEmpty(message = "name不能为null")  
    @Size(max=25)  
    private String name;  
    @NotEmpty  
    @Email(message = "email不符合规则")  
    private String email;  
                   ''  
                   ''  
                   ''  
                 get set 方法略  
}


Controller


        @RequestMapping("save")  
public String save( @Valid Users users,BindingResult result) {  
    System.out.println("UserKey:"+users.getUserKey());  
    System.out.println("Email:"+users.getEmail());  
    System.out.println("Name:"+users.getName());  
    if(result.hasErrors()){  
        List<ObjectError> ls=result.getAllErrors();  
        for (int i = 0; i < ls.size(); i++) {  
            System.out.println("error:"+ls.get(i));  
        }  
    }  
    return "adduser";  
}


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

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


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]  

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]  


我不知道前台页面该怎么去取,我现在就想在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 应该已经把这些消息传送到显示层了,问题现在我不知道前台页面怎么读取

育知同创教育
2018-07-25 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
jsp 页面要想得到spring BindingResult 里面的错误消息需要利用request对象实现。
最常见的写法如下:
${org.springframework.validation.BindingResult.users}
取到的应该是个错误集合 你在向下延伸下去集合里的属性应该就可以
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
btboy1978
2016-09-17 · TA获得超过2015个赞
知道大有可为答主
回答量:2950
采纳率:57%
帮助的人:989万
展开全部
表单 path属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式