SpringMVC 捕获错误消息

控制器业务方法获取错误消息
BindingResult
常用的方法:
-FiledError getFiledError(String fileld)
-ListgetFieldErrors()
-Object getFiledValue(Sting fileld)
-int getErrorCount();

  public String testFormat(**@Valid User user BindingResult result**)//紧挨在一起{
    if(result.getFieldErrorCount()>0)//字段错误消息
    List list=result.getFieldErrors();//FieldErrors是ObejctError的子类
    for( FieldError fieldError:list)
    {fieldError.getField();//出错字段的名称
     fieldError.getDefaultMessage();
    }
   }

注:在入参位置加入 BindingResult 或者Errors,这个入参必须与验证的方法紧挨在一起
errors标签在 页面中获取错误消息
在JSP页面上可通过`


显示错误消息

 <%@taglib uri="form的全路径" prefix="form"%>
   
   Email //想显示email的错误,如果想显示所有的用*

handler中方法如下:

    public String testFormat(**@Valid User user BindingResult result**,Map map)//紧挨在一起{
            if(result.getFieldErrorCount()>0){//字段错误消息
              map.put("user",user);
            return "format";
            }//返回前端页面
            return "success";请求转发
            }
           }
        @RequestMapping("/toFormat")
       public String toFormat(Map map){
       map.put("user",new User());
       return "format";
}

注:form:erroes:通过path属性指定显示的字段对应的错误
form:erroes:必须放在form表单标签的里面
form标签库在使用的时候,不能直接访问jsp,可以通过一个业务方法间接访问页面
错误消息的国际化
每个属性在数据绑定和数据校验发生错误时,会生成一个对应的FieldError对象,当验证失败后,验证框架会为该属性生成4个消息代码,这些代码以校验注解类名为前缀,结合modelAttribute、属性名以及属性类型名生成多个对应的消息代码
-Pattern.user.password
-Pattern.password
-Pattern.java.lang.String
-Pattern
当使用springmvc标签显示错误消息时,springmvc会查看web上下文是否有匹配装配了对应的国际化消息,如果没有,则显示默认的错误消息,否则使用国际化消息
步骤:
先在src中加入2个国际化文件
abc_en_US.properties Email.user.email=the email is error
abc_zh_CN.properties Email.user.email=你输入的邮箱有误
在springmvc.xml中加入bean




注:错误消息的定制
资源文件当中key=value
key:验证规则的名称.modelAttribute.属性名称

你可能感兴趣的:(JAVA)