请通过浏览器功能收藏网页

springmvc4 自定义错误提示信息(i18N资源文件配置) spring4技术

发布时间:2018-10-30 22:25:31  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏

当我们启用JSR303校验后,系统会在校验的时候 给出一些错误提示信息, 这些信息可能不是我们想要的,那么我们应该如何配置我喜欢的提示信息呢?

在springMVC4里我们通过国际化资源文件来实现的。

1)配置资源化文件  

     这个文件如何编写内容呢?     

当一个属性校验失败后,校验框架会为该属性生成 4 个消 息代码,这些代码以校验注解类名为前缀,结合modleAttribute、属性名及属性类型名生成多个对应的消息代码:例如 User 类中的 password 属性标准了一个 @Pattern 注解,当该属性值不满足 @Pattern 所定义的规则时, 就会产生以下 4 个错误代码,提示范围逐步增大:

    Pattern.user.password –

    Pattern.password –

    Pattern.java.lang.String –

    Pattern 

  

2)   实例: handler:

    

       @RequestMapping(value="/emp", method=RequestMethod.POST)

public String save(@Valid Employee employee, Errors result{

if(result.getErrorCount() > 0){

for(FieldError error:result.getFieldErrors()){

System.out.println(error.getField() + ":" + error.getDefaultMessage());

}

return "input";

}

return "redirect:/emps";

}


   bean:           

                public class Employee {

                 @NotEmpty

                 private String lastName;                

                 @Email

                 private String email;                 

                 @Past

                 @DateTimeFormat(pattern="yyyy-MM-dd")

                 private Date birth;

                   ... ... 

                }


   i18n.properties : src目录下,国际化资源文件编写内容如下:   

注解类型.bean.bean属性 = 提示信息资源

NotEmpty.employee.lastName=LastName\u4E0D\u80FD\u4E3A\u7A7A.

Email.employee.email=Email\u5730\u5740\u4E0D\u5408\u6CD5

Past.employee.birth=Birth\u4E0D\u80FD\u662F\u4E00\u4E2A\u5C06\u6765\u7684\u65F6\u95F4. 

typeMismatch.employee.birth=Birth\u4E0D\u662F\u4E00\u4E2A\u65E5\u671F. 

    

   springMVC 引入国际化资源文件:   

        当使用 Spring MVC 标签显示错误消息时, Spring MVC 会查看WEB 上下文是否装配了对应的国际化消息,如果没有,则显示默认的错误消息,否则使用国际化消息。

    

<bean id="messageSource"

class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basename" value="i18n"></property>

</bean>


至此,我们就完成了自定义表单验证错误提示信息的效果。


如有疑问 请留言 欢迎提供建议

评论已有 0