spring表单标签个人觉得非常好用,一个非常明显的特点就是和po、vo或dto对应,很好的整合了校验框架和视图映射,对象图映射等。在使用的时候有一种错误并不是很明显能够看出来,那就是提交表单的时候得到400错误,从页面上不知道背后发生了什么,不好定位问题,一种让人懵逼的错误,由于遇到多了,这里作一个汇总。
1、如果标签的path对应的是一个对象图属性,如果类型不匹配会导致400,非对象图一般不会发生,因为都是字符串类型。特别的如果是Date类型需要注意。
2、如果提交的是json格式,在转换为bean的时候属性不匹配或类型问题会出400.
3、如果使用了校验框架,那么通常会在handlermethod入参中传入BindingResult result,如果没有传入则会400,并且顺序一定要跟着校验对象参数后面,否则400,如下面的例子,否则会返回400.
@RequestMapping(value="/modify",method=RequestMethod.POST)
public ModelAndView modify(@Validated User user,BindingResult result,ModelAndView model)