springmvc笔记(7)—处理模型数据

前言:

Spring MVC 提供了如下几种途径输出模型数据:html

  • ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体便可经过该对象添加模型数据
  • Map 及 Model: 入参为org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map中的数据会自动添加到模型中。
  • @SessionAttributes: 将模型中的某个属性暂存到HttpSession 中,以便多个请求之间能够共享这个属性
  • @ModelAttribute: 方法入参标注该注解后, 入参的对象就会放到数据模型中

下面,咱们逐一来介绍这四种处理模型数据的方法:java

一. ModelAndView

控制器处理方法的返回值若是为 ModelAndView, 则其既包含视图信息,也包含模型数据信息spring

  • 添加模型数据:

        – MoelAndView addObject(String attributeName, Object attributeValue)
        – ModelAndView addAllObject(Map<String, ?> modelMap)mvc

  • 设置视图:

       – void setView(View view)
       – void setViewName(String viewName)app

<a href="springmvc/testModelAndView">test ModelAndView</a>
<br><br>
/**
	 * 目标方法的返回值能够是 ModelAndView 类型。 
	 * 其中能够包含视图和模型信息
	 * SpringMVC 会把 ModelAndView 的 model 中数据放入到 request 域对象中. 
	 * @return
	 */
	@RequestMapping("/testModelAndView")
	public ModelAndView testModelAndView() {
		String viewName=SUCCESS;
		ModelAndView modelAndView=new ModelAndView(viewName);
		//添加模型数据到ModelAndView中
		modelAndView.addObject("time", new Date());
		return modelAndView;
	}

success.jsp中增长“${requestScope.time}”,以取得modelAndView中的数据:jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h4>Success Page!</h4>
time: ${requestScope.time}
</body>
</html>

最后运行结果:ui

二. Map 及 Model

相关文章
相关标签/搜索