spring-mvc - springmvc的注解@requestBody自动封装复杂对象?
本文介绍了spring-mvc - springmvc的注解@requestBody自动封装复杂对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
springmvc的注解@requestBody可以通过页面提交json来自动封装成bean对象,但是如果这样的怎么处理
public class User{
private String id;
private int age;
private String name;
private Class classInfo;
//getter,setter
}
public class ClassInfo{
private String id;
private name;
private User classMaster;
private School school;
@JsonIgnore
private Set<User> teachers;
//getter,setter
}
public class School{
private String id;
private String name;
//getter,setter
}
我封装的json对象是
"classInfo":{
"id":"xxxxx",
"name":"一年级三班",
//班主任
"classMaster":{
"id":"xxxx",
"age":"92",
"name":"班主任"
},
//学校
"school":{
"id":"xxx",
"name":"旭日东升小学"
},
//教师集合
"teachers":[
{
"id":"xxxx",
"age":"92",
"name":"语文老师"
},
{
"id":"xxxx",
"age":"92",
"name":"数学老师"
}
]
}
提交的时候data : JSON.stringify(classInfo)
这样的班级里面包含了班主任,教师集合,还有学校,后台是这样的
@requestMapping("xxxx")
@responseBody
public Map<String,Object> addClass(Model model, @requestBody ClassInfo classInfo){
xxxx
}
这个时候classInfo的数据可以收的到,但是对应的无论是依赖对象还是集合属性,都是null,请问这种情况怎么处理,是不是json的格式不太对
spring3.2.8的
解决方案
初步看应该是JSON格式有问题,多了一层,针对实体ClassInfo的JSON格式应该是:
{
"id": "xxxxx",
"name": "一年级三班",
"classMaster": {
"id": "xxxx",
"age": "92",
"name": "班主任"
},
"school": {
"id": "xxx",
"name": "旭日东升小学"
},
"teachers": [
{
"id": "xxxx",
"age": "92",
"name": "语文老师"
},
{
"id": "xxxx",
"age": "92",
"name": "数学老师"
}
]
}
这篇关于spring-mvc - springmvc的注解@requestBody自动封装复杂对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文