开发者社区> 问答> 正文

spring mvc 的数据绑定,数据验证 400 请求报错 

正在学习spring(3.0.5) mvc,有个问题想请教一下:如何处理在数据绑定时候出的错呢?如何自定义出错的信息呢?
比如说:Object中要求是Integer,但是前台用户输入了字母A,这种情况,在Spring Binder Data,进行数据绑定的时候就会进行类型的转换,然后就会throw exception,如何处理这种情况?如何自定义错误信息呢?

展开
收起
kun坤 2020-05-29 15:19:18 905 0
1 条回答
写回答
取消 提交回答
  • 你可以: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中配置要检查的类型就型了……

    ######谢谢回答,不过你可能都没明白我的意思

    2020-05-29 15:19:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-Spring Cloud Alibaba 微服务全家桶体验 立即下载
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载

相关实验场景

更多