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

相關文章
相關標籤/搜索