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?

JSONJavaScript 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
}]