Spring MVC验证问题

djy1135 2006-09-11 11:24:11
我用spring 调用common的validator进行页面验证的时候,如果是String型的,则验证正常.如果是Integer型的就出错?
Failed to convert property value of type [java.lang.String] to required type [java.lang.Integer] for property age; nested exception is java.lang.NumberFormatException: For input string: ""

后来我在Controller中加了一段:
protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Integer.class,new CustomNumberEditor(Integer.class,null,true));
}

然后,刚才始进入页面时不出错了,即不输入数据的时候不出错,一旦输入了字符,则就出现如下错误:
Failed to convert property value of type [java.lang.String] to required type [int] for property age; nested exception is java.lang.NumberFormatException: For input string: "ff"



我在validation.xml中的配置如下:
<form name="user">
<field property="name"
depends="required">

<arg0 key="姓名"/>
</field>
<field property="age"
depends="required,integer">

<arg0 key="年龄"/>
</field>
<field property="email"
depends="required,email">

<arg0 key="姓名"/>
</field>

</form>

另外在user.java中
age的类型为 integer


请高手指点,谢谢!!!
...全文
684 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
djy1135 2006-09-13
  • 打赏
  • 举报
回复
问题终于解决了:
Have the customized typeMismatch message in your message properties
file that Spring load as messageResource.

Example:
# For generic error message on type mismatch Date
typeMismatch.java.util.Date={0} is an invalid date.

# For specific error message on perticular form field
# (e.g. startDt is a form field name)
typeMismatch.startDt=Start Date is an invalid date.

djy1135 2006-09-12
  • 打赏
  • 举报
回复
还有没有其它答案???
上面二位的回答,貌似不太理想!
User类是一个pojo,我们用了 hibernate
zghmu007 2006-09-12
  • 打赏
  • 举报
回复
恩,在得到和插入数据的时候把类型转换一下就可以了
  • 打赏
  • 举报
回复
这个问题我回答过,取数据时把integer型字段转化成string型,表单里age按字串型处理就是了
djy1135 2006-09-11
  • 打赏
  • 举报
回复
没人用过吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧