@RequestBody注解踩坑
@RequestBody json注入Bean属性为空
1、接收JSON数据注入到Bean中,必须要加RuquestBody注解
2、判断属性名称字段是否相同
3、spring 默认不为首字母大写的JavaBean进行赋值操作,若首字母大写进行赋值操作需加入@JsonProperty(value=“AlarmTime”)注解
注:JavaBean规范 属性的首字母小写,驼峰命名:以小写字母开头,每个单词首字母大写
4、首字母大写无法赋值,修改Bean属性为Public同样可以解决问题(不建议此方案解决)
例:
具体操作亲试
@RequestBody注解的一些注意事项
1.@RequestBody注解用来获取请求体中的数据,直接使用得到的是key=value&key=value…结构的数据,因此get方式不适用(get方式下@RequestBody获取不到任何数据)。
例:
public void test1(@RequestBody String body){
system.out.println(body);
}
输出结果:
username=hehe&age=20
2.使用@RequestBody注解后,可以在方法中创建一个集合对象,前端提交的集合数据可以直接被注入到方法的集合对象中,而不需要创建一个pojo对象进行集合的封装。
3.如果想要将前端提交的json字符串自动封装到一个对象中,需要导入jackson的相关jar包,并使用@RequestBody注解。
注:springmvc默认使用MappingJacksonHttpMessageConverter对json数据进行转换。
4.使用@RequestBody 前后端参数要匹配个数不能少。字段名字要一样。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。