两个项目,a,b
项目a新增、更新商品以表单形式提交,后端controller接收的时候,参数是商品对象,前面没有标签
项目b新增、更新商品利用angularjs的双向绑定,定义一个entity,以"url,entity"(url后加对象并以逗号分割)的形式提交,其后端接收时则用到了RequestBody标签
另外后端接收前端的数组,在参数名和前端保持一致的情况下,仍然需要@RequestParam,否则报错。@RequestParam不是在变量名不一致的时候使用的吗?
两个项目,a,b
项目a新增、更新商品以表单形式提交,后端controller接收的时候,参数是商品对象,前面没有标签
项目b新增、更新商品利用angularjs的双向绑定,定义一个entity,以"url,entity"(url后加对象并以逗号分割)的形式提交,其后端接收时则用到了RequestBody标签
另外后端接收前端的数组,在参数名和前端保持一致的情况下,仍然需要@RequestParam,否则报错。@RequestParam不是在变量名不一致的时候使用的吗?
先说@requestParam是在前端请求使用的post默认表单提交方式或者get方式参数跟在url后面,即Content-Type是application/x-www-form-urlencoded的用@requestParam,前端如果post请求,把请求参数封装成json格式的且Content-Type为application/json则后台只能用@requestbody自动接受参数。如果在上述第一种情况下你不写@requestParam则springmvc会去到请求url上或者body里面找和参数名一样的值,没有则为java默认值。如果直接写一个对象没有注解,则找和对象中属性名一样的值,有就赋值,然后把这个对象传入方法里。第二种情况实质是springmvc在知道请求是post,且是application/json则自己到request的body中拿出json数据格式化为你写的类型。还有list,map,array不推荐直接接受最好包装在一个对象中用json格式提交接受比较好。