spring mvc处理表单空字段不能转换的问题

小鱼朱朱 发布于 2014/07/15 14:49
阅读 2K+
收藏 1
在spring mvc中,直接用对象来接收表单的数据非常方便。想struts一样,spring自动找到对象的set方法,将值插入。现在有个问题就是,在表单中某个字段为空的时候,spring接收到的是"",但当这个字段的类型是Date或者int或者别的空字符串不能转换的类型,spring就会抛出错误,页面也不能正确解析了。请问有什么办法让spring自动将""转换成null呢?
加载中
0
小99
小99
你百度spring的转换器,把字符串类型过滤一下自己处理
小鱼朱朱
小鱼朱朱
太感谢你了,终于解决了,也终于了解了spring映射对象的机制。第一次在开源中国提问,不知道怎么给分你额。
0
Joe小桥
Joe小桥

在实体类里面可以对Date类型的属性加上以下注解

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")//映射日期格式

其余的我还没遇到过。

Joe小桥
Joe小桥
@小鱼朱朱 不需要
小鱼朱朱
小鱼朱朱
这位老兄,这个问题还是没有解决啊。这个校验似乎是在调用这个方法之后校验的,也就是说spring在用字符串调用需要Date参数的方法的时候还是会先报出无法将""转换成Date类型的错误。
小鱼朱朱
小鱼朱朱
谢谢回答。你这样设置的话这样的话就是说在controller的方法中的表单对象前也加上@Valid这个注解了是吧?只有这一种解决办法吗,可以设置让spring自动将“”转换成null吗?
0
18号
18号
spring 转换器,你想怎么转,反转顺转都行
小鱼朱朱
小鱼朱朱
回复 @肖恩_ : 坑爹的,我是看的spring in action 学的,上面没有介绍这个。
18号
18号
不会这么纠结吧,这是mvc框架必备的功能啊
小鱼朱朱
小鱼朱朱
啊,你们要是昨天来评论多好啊,我纠结了一晚上。
0
sxgkwei
sxgkwei
不管你Date怎么处理,给你个建议,实体类里面,不要用基本数据类型,比如你提到的int,最好用它的封装类型。
小鱼朱朱
小鱼朱朱
为什么
0
小99
小99
那你就把评论前面的绿色对勾勾选就是最佳答案,哈哈!无所谓了,解决就好!
0
小99
小99
spring把控制权交到了你的手里,这样更灵活,可以让你自由发挥
返回顶部
顶部