Controller 方法中不一定要全部都有 form表单提交的属性, 也可以有 请求属性中 没有的参数(这时候只会把对应不上的参数设为null),这两种情况都不会报错。
但是有几种情况会报错,可能会提示HTTP status 400, The request sent by the client was syntactically incorrect,而且此时如果加断点你会发现根本进不了Controller,但是浏览器中url的路径是正确的。
会出现错误的情况如下:
错误(1) 前台请求的参数在方法中有对应的参数名,但是无法转成对应的类型,比如form中 有,方法public String aa(int id){ } , 当在文本框中输入“wwwwee”等非整形字符时,就会出错。特别提示的是,java Date类型,在form表单中必须按照 “2016-10-10 12:10:12” 的格式走(注意中间的空格,最少要写到时,即2016-10-10 12)。在form的checkbox多选框对应 java的数组,不能对应List。
错误(2)方法中参数名重复。public String aa(User user,String name){ }, User这个类中有name属性,现在就导致 Spring MVC不知道绑定哪各属性。
案例:
这里的商品重量,后台为int类型,而前台输入的是一个字符串,提交时就会绑定参数失败出现下面界面