springMVC-错误消息的显示和国际化

时间:2022-03-31 20:33:03

显示:在页面添加<form:errors path="*">会把错误消息集中显示在一块

在页面添加<form:errors path="lastname">可以显示在对应字段的后面,分开显示

提示消息的国际化

* 每个属性在数据绑定和数据校验发生错误时,都会生成一个对应的Fielderror

对象。

* 当一个属性校验失败后,校验框架会为该属性生成4个消息代码,这些代码

以校验注解类名为前缀,结合modleAttribute。属性名及属性类型名生成多

个对应的消息代码:例如User类中的password属性标准了一个@pattern注解

,当该属性值不满足@pattern所定义的规则时,就会产生一下4个错误代码:

Pattern.user.password

Pattern.password

Pattern.java.lang.String

Pattern

* 当使用Spring MVC标签显示错误消息时,SpringMVC会查看WEB上下文

是否装配了对应的国际化消息,如果没有,则显示默认的错误消息,否则使用国际化消息

写例如

Past.product.productionDate=^^past time

Past是Product的@Past

product是Product类的类名小写

productionDate是Product属性

然后在配置国际化资源文件

   <!--配置国际化资源文件  -->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="i18n"/>
    </bean>

 

* 若数据类型转换或数据格式转换时发生错误,或该

有的参数不存在,或调用处理方法时发生错误,都会在隐含模型中创建

错误消息。其错误代码前缀说明如下

- required:必要的参数不存在,如@RequiredParam("param1")标注

了一个入惨,但是该参数不存在

-typeMismatch:在数据绑定时,发生数据类型不匹配的问题

-methodInvocation:Spring MVC在调用处理方法时发生了错误

例如

typeMismatch.product.productionDate=^^past time