Spring mvc 中处理模型数据 ModelAndView
原文: http://blog.youkuaiyun.com/jingyuan_/article/details/9625125
将模型数据暴露给视图是Spring MVC框架的一项重要工作,SpringMVC提供了多种途径输出模型数据:
1.ModelAndView
2.@ModelAttribute
3.Map及Model
4.@SessionAttributes
例子如下:
- package com.test.controller;
- import java.util.Map;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- import com.test.model.User;
- @Controller
- @RequestMapping("/mavc")
- public class ModelAndViewController {
- /**
- * 处理模型数据1:ModelAndView
- * @return
- */
- @RequestMapping("method1")
- public ModelAndView method1(){
- ModelAndView mav = new ModelAndView();
- User u = new User();
- u.setUserName("1");
- mav.addObject("user1", u);
- mav.setViewName("modelandview");
- return mav;
- }
- /**
- * 处理模型数据2:@ModelAttribute
- * @param user
- * @return
- */
- @RequestMapping("method2")
- public String method2(@ModelAttribute("user")User user){
- user.setUserName("汤姆");
- return "/mavc/handle61";
- }
- @ModelAttribute("user")
- public User getUser(){
- User user = new User();
- user.setUserName("汤姆");
- return user;
- }
- /**
- * 处理模型数据3:Map及Model
- * @param map
- * @return
- */
- @RequestMapping("method3")
- public String method3(Map<String,Object> map){
- User user = new User();
- user.setRealName("汤姆");
- map.put("user", user);
- return "/mavc/method3";
- }
- @RequestMapping("method4")
- public String method4(ModelMap modelMap){
- User user = new User();
- user.setRealName("汤姆");
- modelMap.put("user", user);
- return "/mavc/method4";
- }
- /**
- * 处理模型数据4:@SessionAttributes("user")
- * 详见SessionAttributesController
- * */
- }
- package com.test.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.SessionAttributes;
- import org.springframework.web.bind.support.SessionStatus;
- import com.test.model.User;
- @Controller
- @RequestMapping("/sac")
- @SessionAttributes("user")
- public class SessionAttributesController {
- @ModelAttribute("user")
- public User getUser(){
- User user = new User();
- user.setUserName("汤姆");
- return user;
- }
- @RequestMapping("method1")
- public String method1(@ModelAttribute("user") User user){
- user.setUserName("Tom");
- return "redirect:method2";
- }
- @RequestMapping("method2")
- public String method2(ModelMap modelMap,SessionStatus sessionStatus){
- User user = (User)modelMap.get("User");
- if(user != null){
- user.setUserName("Tim");
- sessionStatus.setComplete();
- }
- return "sac/method2";
- }
- }