Spring MVC前端对数据的封装 加@RequestBody注解与不加的区别
在传统的SSM 项目下 :
对于简单的对象封装 直接在方法参数上添加 对象 springMVC会自动帮我们将字段对应的数据封装成对象。
现在有2种前端传参的方式 :
1.前端传入 JSON字符串(比如前端js在传入参数时调用JSON.stringfy()方法将js对象转为json字符串):
此时在后端用@RequestBody接受参数时springMVC会将json字符串根据相应的属性名称赋值给对象的属性(只能赋值基本类型)。
但是如果是一个复杂的对象的话 比如 一个User对象中还含有一个Page对象此时 对于Page对象就无法赋值,值会为NULL,解决方法就是在springMVC的application.xml文件中配置 httpMessagerConverter(消息转换器),消息转换器会帮助我们,自动封装复杂的对象。
2.前端传参为一个对象:
缺点传输效率没有json字符串高。也无法封装复杂的对象
在SpringBoot项目下就没有这种情况的出现:因为springBoot自动帮助我们配置了消息转换器。