6 springmvc响应数据
6.1 Model的使用
当请求发起访问Controller
中的方法时,可以通过参数声明,在方法内使用Model
。
@RequestMapping("/doorList")
public String doorList(Model model){} // <----------- 添加 model 参数
Model
对象实际上是<mark>一个Map集合</mark>,
例如:往model中添加一个属性
model.addAttribute(String name, Object value);
其中,addAttribute
方***将属性保存到request
域中,
再通过转发将属性数据带到相应的JSP
中,通过${}
取出并显示。
示例,往Model中添加属性:
@RequestMapping("/testModel")
public String testModel(Model model){
/* 往Model添加属性 */
model.addAttribute("name", "刘德华");
model.addAttribute("age", 20);
return "home";
}
在home.jsp中取出属性并显示:
<body>
<h1>hello springmvc~~~</h1>
${ name } <br/> <!-- el表达式 -->
${ age }
</body>
6.2 返回JSON数据
1、什么是JSON?
JSON
(JavaScript Object Notation
)是一种JS
提供的轻量级的数据交换格式。
JSON
在项目开发中是一种非常流行的<mark>数据交换格式</mark>。
例如:
在JS
中可以通过下面的形式,声明一个person
对象
var person = {
"name" : "张飞",
"age" : 18,
"friends" :["关羽", "刘备"],
"sayHi" : function(){ alert("person.sayHi()..") }
};
可以通过person
对象访问其中的属性或方法:
person.name; // 张飞
person.age; // 18
person.friends; // ["关羽", "刘备"]
person.sayHi(); // 弹框提示 person.sayHi()..
上面是JS
中声明对象的一种常用方式,也是JSON
的格式。
2、由于JSON
格式简单, 并且可以通过JS
非常方便的访问JSON
中的数据。
因此,在服务器响应时,经常会返回一个JSON
数据:
@RequestMapping("/testJson")
@ResponseBody
public List<User> testJson(){
//模拟查询所有用户,将所有用户信息封装到List<User>集合中
List<User> list = new ArrayList();
list.add( new User("张三", 18) );
list.add( new User("李四", 20) );
list.add( new User("王五", 22) );
//将所有用户的List<User>集合以JSON格式响应
return list;
}
返回的结果为:
[{
"name": "张三",
"age": 18
}, {
"name": "李四",
"age": 20
}, {
"name": "王五",
"age": 22
}]