1. 程式人生 > >SpringMVC_處理資料模型(@ModelAndView、@Map、@SessionAttributes)

SpringMVC_處理資料模型(@ModelAndView、@Map、@SessionAttributes)

1. 處理模型資料之ModelAndView

首先ModelAndView 分為兩部分:model和view。model負責的是從後面接收回來的引數,view就是檢視就是指定的jsp頁面。例如:ModelAndView mv = new ModelAndView(“test”); 所以當return mv的時候,其中view就是test.jsp頁面,程式碼如下

	ModelAndView mv = new ModelAndView("test");//檔名(例如JSP: test.jsp)                            
	mv.addObject
("username", "wang"); //"hellow"為傳到jsp的資料,用aa取

Demo如下:

	<form action="springmvc/TestModelAndView" method="post">
		使用者名稱<input type="text" name="username"/><br/>
		<input type="submit" value="提交">
	</form>
	@RequestMapping("/TestModelAndView")
	private static final String SUCCESS =
"success"; public ModelAndView TestModelAndView(@RequestParam("username") String username){ ModelAndView mv=new ModelAndView(SUCCESS); mv.addObject("username",username); return mv; }
JSP頁面展示:${username}

2. 處理模型資料之Map

	<a href="springmvc/TestMap">TestMap</a><br/>
	private
static final String SUCCESS = "success"; @RequestMapping("/TestMap") public String TestMap(Map<String,Object> map){ map.put("city", Arrays.asList("Dog","Cat","bird")); return SUCCESS; }
	展示頁面:${city}

3. 處理模型資料之SessionAttributes

SessionAttributes除了可以通過value值來指定放入Session裡的內容外,還可以使用types屬性值來指定
注意:SessionAttributes只能修飾類,不能修飾方法

@Controller
@SessionAttributes(value={"user"},types={String.class})
@RequestMapping("/springmvc")
public class SpringMVCTest {
	private static final String SUCCESS = "success";

	@RequestMapping("/TestSessionAttributs")
	public String TestSessionAttributs(Map<String,Object> map){
		User user=new User("wang","123",50);
		map.put("user", user);
		map.put("pass", "123456");
		return SUCCESS;
	}
	
}
	展示頁面:
		requestScope使用者名稱${requestScope.user.username} <br>
		requestScope密碼${requestScope.pass} <br>
		SessionScope使用者名稱${sessionScope.user} <br>
		SessionScope密碼${sessionScope.pass} <br>