Spring 3.0 MVC
首先,我没有找到任何有关 messages.properties @ 的文档泉源我在各种论坛上发现了有关覆盖错误消息的所有内容。如果有人能参考 messages.properties 的记录位置,那就太棒了。也许 messages.properties 不是来自 spring 而是来自 java 规范?
我尝试遵循以下建议JSR-303 绑定前类型检查我的目标是用我自己的用户友好错误消息替换某些类型不匹配错误消息
我的情况如下:
Model
public class Test {
private int numberbomb;
public int getNumberbomb() {
return numberbomb;
}
public void setNumberbomb(int numberbomb) {
this.numberbomb = numberbomb;
}
}
myservlet.xml
<mvc:annotation-driven/>
jsp
<form:form id="test" method="post" modelAttribute="test">
<form:errors path="*"/>
<form:label path="numberbomb">numberbomb</form:label>
<form:input path="numberbomb"/>
</form:form>
类\messages.properties
typeMismatch=bad value you bad bad person
test.numberbomb=you are driving me crazy with these bad inputs
表格输出
无法将 java.lang.String 类型的属性值转换为属性 numberbomb 所需的 int 类型;嵌套异常是 org.springframework.core.convert.ConversionFailedException:无法将值“三”从 java.lang.String 类型转换为 int 类型;嵌套异常是 java.lang.NumberFormatException: 对于输入字符串:“三”
我的控制器中的 BindingResult.toString()
字段“numberbomb”上的对象“test”中的字段错误:拒绝值[三];代码 [typeMismatch.test.numberbomb,typeMismatch.numberbomb,typeMismatch.int,typeMismatch];参数 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码 [test.numberbomb,numberbomb];参数[];默认消息[numberbomb]];默认消息[无法将类型“java.lang.String”的属性值转换为属性“numberbomb”所需的类型“int”;嵌套异常是 org.springframework.core.convert.ConversionFailedException:无法将值“三”从类型“java.lang.String”转换为类型“int”;嵌套异常是 java.lang.NumberFormatException: 对于输入字符串:“三”]
显示错误消息<form:errors>
显示自定义错误消息的方式错误?我是否需要在 spring 配置文件中添加一些内容来告诉它查看 messages.properties? Spring 似乎忽略了我的 messages.properties 文件(位于 WEB-INF\classes 文件夹中)
感谢您的任何想法!