SpringMVC 的几种返回数据的方式
1.返回一个 ModelAndView构造函数
//对于ModelAndView构造函数可以指定返回页面的名称,也可以通过setViewName方法来设置所需要跳转的页面;
@RequestMapping(value="/index2",method=RequestMethod.GET)
public ModelAndView index2(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("name", "xxx");
modelAndView.setViewName("/user/index");
return modelAndView;
}
//返回的是一个包含模型和视图的ModelAndView对象;
2.返回一个Model一个模型对象,
/**
* Model一个模型对象,
* 主要包含spring封装好的model和modelMap,以及java.util.Map,
* 当没有视图返回的时候视图名称将由requestToViewNameTranslator决定;
* @return
*/
@RequestMapping(value="/index3",method=RequestMethod.GET)
public Map<String, String> index3(){
Map<String, String> map = new HashMap<String, String>();
map.put("1", "1");
//map.put相当于request.setAttribute方法
return map;
}
//响应的view应该也是该请求的view。等同于void返回。
3.返回String
//通过model进行使用
@RequestMapping(value="/index4",method = RequestMethod.GET)
public String index(Model model) {
String retVal = "user/index";
User user = new User();
user.setName("XXX");
model.addAttribute("user", user);
return retVal;
}
4.返回Json 格式类型
在pom.xml配置文件中加入跟SpringMVC返回JSON数据绑定相关的依赖包:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
java后端代码
import com.gwolf.springmvc.dao.DepartmentDao;
import com.gwolf.springmvc.dao.EmployeeDao;
import com.gwolf.springmvc.domain.Employee;
@Controller
public class EmployeeHandler {
@Autowired
private EmployeeDao employeeDao;
@Autowired
private DepartmentDao departmentDao;
@RequestMapping("/springmvc/testJson")
@ResponseBody
public Collection<Employee> testJson() {
return this.employeeDao.getAll();
}
}
页面代码,需要在页面添加一个返回JSON的超链接。
<html>
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#testJson").click(function(){
var url = this.href;
var args = {};
$.post(url,args,function(data) {
for(var i=0;i<data.length;i++) {
var id = data[i].id;
var lastName = data[i].lastName;
alert(id+":" + lastName);
}
});
});
})
</script>
<body>
<h2>
<a href="springmvc/testJson" id="testJson">Test JSON</a>
</h2>
</body>