Spring mvc 中处理模型数据 ModelAndView


Spring mvc 中处理模型数据  ModelAndView

原文: http://blog.csdn.net/jingyuan_/article/details/9625125

将模型数据暴露给视图是Spring MVC框架的一项重要工作,SpringMVC提供了多种途径输出模型数据:

1.ModelAndView

2.@ModelAttribute

3.Map及Model

4.@SessionAttributes

例子如下:

[java]  view plain copy
  1. package com.test.controller;  
  2.   
  3. import java.util.Map;  
  4.   
  5. import org.springframework.stereotype.Controller;  
  6. import org.springframework.ui.ModelMap;  
  7. import org.springframework.web.bind.annotation.ModelAttribute;  
  8. import org.springframework.web.bind.annotation.RequestMapping;  
  9. import org.springframework.web.servlet.ModelAndView;  
  10.   
  11. import com.test.model.User;  
  12.   
  13. @Controller  
  14. @RequestMapping("/mavc")  
  15. public class ModelAndViewController {  
  16.     /** 
  17.      * 处理模型数据1:ModelAndView 
  18.      * @return 
  19.      */  
  20.     @RequestMapping("method1")  
  21.     public ModelAndView method1(){  
  22.         ModelAndView mav = new ModelAndView();  
  23.         User u = new User();  
  24.         u.setUserName("1");  
  25.         mav.addObject("user1", u);  
  26.         mav.setViewName("modelandview");  
  27.         return mav;  
  28.     }  
  29.       
  30.     /** 
  31.      * 处理模型数据2:@ModelAttribute 
  32.      * @param user 
  33.      * @return 
  34.      */  
  35.     @RequestMapping("method2")  
  36.     public String method2(@ModelAttribute("user")User user){  
  37.         user.setUserName("汤姆");  
  38.         return "/mavc/handle61";  
  39.     }  
  40.       
  41.     @ModelAttribute("user")  
  42.     public User getUser(){  
  43.         User user = new User();  
  44.         user.setUserName("汤姆");  
  45.         return user;  
  46.     }  
  47.     /** 
  48.      * 处理模型数据3:Map及Model 
  49.      * @param map 
  50.      * @return 
  51.      */  
  52.     @RequestMapping("method3")  
  53.     public String method3(Map<String,Object> map){  
  54.         User user = new User();  
  55.         user.setRealName("汤姆");  
  56.         map.put("user", user);  
  57.         return "/mavc/method3";  
  58.     }  
  59.     @RequestMapping("method4")  
  60.     public String method4(ModelMap modelMap){  
  61.         User user = new User();  
  62.         user.setRealName("汤姆");  
  63.         modelMap.put("user", user);  
  64.         return "/mavc/method4";  
  65.     }  
  66.       
  67.     /** 
  68.      * 处理模型数据4:@SessionAttributes("user") 
  69.      * 详见SessionAttributesController 
  70.      * */  
  71. }  


[java]  view plain copy
  1. package com.test.controller;  
  2.   
  3. import org.springframework.stereotype.Controller;  
  4. import org.springframework.ui.ModelMap;  
  5. import org.springframework.web.bind.annotation.ModelAttribute;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import org.springframework.web.bind.annotation.SessionAttributes;  
  8. import org.springframework.web.bind.support.SessionStatus;  
  9.   
  10. import com.test.model.User;  
  11.   
  12. @Controller  
  13. @RequestMapping("/sac")  
  14. @SessionAttributes("user")  
  15. public class SessionAttributesController {  
  16.       
  17.     @ModelAttribute("user")  
  18.     public User getUser(){  
  19.         User user = new User();  
  20.         user.setUserName("汤姆");  
  21.         return user;  
  22.     }  
  23.       
  24.     @RequestMapping("method1")  
  25.     public String method1(@ModelAttribute("user") User user){  
  26.         user.setUserName("Tom");  
  27.         return "redirect:method2";  
  28.     }  
  29.     @RequestMapping("method2")  
  30.     public String method2(ModelMap modelMap,SessionStatus sessionStatus){  
  31.         User user = (User)modelMap.get("User");  
  32.         if(user != null){  
  33.             user.setUserName("Tim");  
  34.             sessionStatus.setComplete();  
  35.         }  
  36.         return "sac/method2";  
  37.     }  
  38. }  


你可能感兴趣的:(spring,mvc,ModelAndView)