SpringMVC 400 Bad Request 问题

在提交表单时,发生400错误,并未进入save方法。

?
1
2
3
4
5
6
7
8
9
10
@RequestMapping (value= "/!save" ,method = RequestMethod.POST)
     public  String save( @ModelAttribute ( "user" @Valid  UserEntity user,
       Locale local,
       BindingResult results){
         String message = messageSource.getMessage( "name.not.empty" null , local);
         System.out.println(message);
         if (results.hasErrors())
             return  "/user/add" ;
         return  "redirect:/user/list" ;
     }

经google后,发现大多是因为表单数据类型与model不匹配,造成。
但是,经过一再减少model内容后,提交表单,问题依旧。
终于在iteye论坛发现:springMVC参数顺序不同导致异常

约定的BindingResult必须紧随@valid之后。    

原来我这里的400是这个原因导致的。以下为正确顺序:

?
1
2
3
4
5
6
7
8
9
10
@RequestMapping (value= "/!save" ,method = RequestMethod.POST)
     public  String save( @ModelAttribute ( "user" @Valid  UserEntity user,
       BindingResult results,
       Locale local){
         String message = messageSource.getMessage( "name.not.empty" null , local);
         System.out.println(message);
         if (results.hasErrors())
             return  "/user/add" ;
         return  "redirect:/user/list" ;
     }

在解决问题之后,做一下总结:
springmvc造成400错误的原因现在知道的有以下两点:

1、提交表单数据类型与model不匹配

2、方法参数顺序不正确

3、另一种是form表单中有日期,Spring不知道该如何转换,如要在实体类的日期属性上加@DateTimeFormat(pattern="yyyy-MM-dd")注解

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值