正在学习spring(3.0.5) mvc,有个问题想请教一下:如何处理在数据绑定时候出的错呢?如何自定义出错的信息呢?
比如说:Object中要求是Integer,但是前台用户输入了字母A,这种情况,在Spring Binder Data,进行数据绑定的时候就会进行类型的转换,然后就会throw exception,如何处理这种情况?如何自定义错误信息呢?
你可以:throw new Exception("参数类型不正确");######这个应该属于验证那一块,在哪里throw呢?bindData 是spring自己实现的######你在这个操作的外面 try catch 一下,根据不同的 异常类型,throw出不同的信息######实现异常拦截器HandlerExceptionResolver ,处理异常...不过个人觉得前端已经有js校验的情况下,他仍然提交了问题数据,这个直接给他500页面也不为过呢######自定义 Exception
######前台使用js先validate以下,比如使用jquery_validate或者直接正则,后台校验的时候如果是bindData的话,也就是说你得到的是一个对象,貌似转换是自动进行的,你可以直接在对应的controller的对应的方法参数加上这个为Interger的属性名称(换个名字),在前台将属性换一个名字,然后在controller接受,自己进行转换和判断即可######回复 @一袭青衫 : 那也是没办法的,所以必要的牺牲还是要的。看spring是否会提供相关的校验了~,有好的方法的话@我啊######回复 @我才是祁晓波 : 呵呵,是一个方法,但总感觉不够优雅啊######比如 User 属性中有age为int型 在接收的时候参数可以写成 public String getUser(User user,String newAge,Model model) 前台的表单为<form action="*"><input type="text" name="newAge"></form>######spring mvc中有validator的插件,整合jsr,然后在model中配置要检查的类型就型了……
######谢谢回答,不过你可能都没明白我的意思
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。