spring mvc 的数据绑定,数据验证

一袭青衫 发布于 2013/04/18 11:31
阅读 1K+
收藏 0

正在学习spring(3.0.5) mvc,有个问题想请教一下:如何处理在数据绑定时候出的错呢?如何自定义出错的信息呢?

比如说:Object中要求是Integer,但是前台用户输入了字母A,这种情况,在Spring Binder Data,进行数据绑定的时候就会进行类型的转换,然后就会throw exception,如何处理这种情况?如何自定义错误信息呢?

加载中
0
不是小白
不是小白
你可以:throw new Exception("参数类型不正确");
一袭青衫
一袭青衫
这个应该属于验证那一块,在哪里throw呢?bindData 是spring自己实现的
0
不是小白
不是小白
你在这个操作的外面 try catch 一下,根据不同的 异常类型,throw出不同的信息
0
逝水fox
逝水fox
实现异常拦截器HandlerExceptionResolver ,处理异常...不过个人觉得前端已经有js校验的情况下,他仍然提交了问题数据,这个直接给他500页面也不为过呢
0
LucEsape
LucEsape
自定义 Exception
0
Mr_Qi
Mr_Qi
前台使用js先validate以下,比如使用jquery_validate或者直接正则,后台校验的时候如果是bindData的话,也就是说你得到的是一个对象,貌似转换是自动进行的,你可以直接在对应的controller的对应的方法参数加上这个为Interger的属性名称(换个名字),在前台将属性换一个名字,然后在controller接受,自己进行转换和判断即可
Mr_Qi
Mr_Qi
回复 @一袭青衫 : 那也是没办法的,所以必要的牺牲还是要的。看spring是否会提供相关的校验了~,有好的方法的话@我啊
一袭青衫
一袭青衫
回复 @我才是祁晓波 : 呵呵,是一个方法,但总感觉不够优雅啊
Mr_Qi
Mr_Qi
比如 User 属性中有age为int型 在接收的时候参数可以写成 public String getUser(User user,String newAge,Model model) 前台的表单为<form action="****"><input type="text" name="newAge">***</form>
0
D2-Studio
D2-Studio
spring mvc中有validator的插件,整合jsr,然后在model中配置要检查的类型就型了……
一袭青衫
一袭青衫
谢谢回答,不过你可能都没明白我的意思
返回顶部
顶部