你的位置:首页 > 软件开发 > Java > 【译】理解Spring MVC Model Attribute 和 Session Attribute

【译】理解Spring MVC Model Attribute 和 Session Attribute

发布时间:2015-10-17 01:00:08
作为一名 Java Web 应用开发者,你已经快速学习了 request(HttpServletRequest)和 session(HttpSession)作用域。在设计和构建 Java Web 应用时,理解这些作用域,如何将数据与对象和这些作用域交互是十分重要的。【在 Stac ...

【译】理解Spring MVC Model Attribute 和 Session Attribute

作为一名 Java Web 应用开发者,你已经快速学习了 request(HttpServletRequest)和 session(HttpSession)作用域。在设计和构建 Java Web 应用时,理解这些作用域,如何将数据与对象和这些作用域交互是十分重要的。【在 StackOverflow 上有一篇文章可以帮助你快速了解 request 和 session 作用域】

SPRING MVC 作用域

当我开始用 Spring MVC 编写 Web 应用时,我发现 Spring model 和 session attribute 有一点神秘,尤其当它们与我熟知的 HTTP request 和 session 作用域交互时。一个 Spring model 元素可以从我的 session 或者 request 中找到吗?如果是这样的话,我该如何控制?在这篇文章中,我希望讲解清楚 Spring MVC 的 model 与 session 是如何工作的。

SPRING 的 @MODELATTRIBUTE

有几种方法将数据或对象添加到 Spring 的 model 中。一般来说,数据或对象是通过 controller 层的一个注解添加进 Spring 的 model 中。在下面的例子中,使用 @ModelAttribute 添加一个名为 MyCommandBean 的实例给 key 值为『myRequestObject』的 model。

 1 public class MyController { 2  3   @ModelAttribute("myRequestObject") 4   public MyCommandBean addStuffToRequestScope() { 5     System.out.println("Inside of addStuffToRequestScope"); 6     MyCommandBean bean = new MyCommandBean("Hello World",42); 7     return bean; 8   } 9 10   @RequestMapping("/dosomething")11   public String requestHandlingMethod(Model model, HttpServletRequest request) {12     System.out.println("Inside of dosomething handler method");13 14     System.out.println("--- Model data ---");15     Map modelMap = model.asMap();16     for (Object modelKey : modelMap.keySet()) {17       Object modelValue = modelMap.get(modelKey);18       System.out.println(modelKey + " -- " + modelValue);19     }20 21     System.out.println("=== Request data ===");22     java.util.Enumeration reqEnum = request.getAttributeNames();23     while (reqEnum.hasMoreElements()) {24       String s = reqEnum.nextElement();25       System.out.println(s);26       System.out.println("==" + request.getAttribute(s));27     }28 29     return "nextpage";30   }31 32     // ... the rest of the controller33 }

原标题:【译】理解Spring MVC Model Attribute 和 Session Attribute

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录