2011-05-09 114 views
15

我如何可以通過使用${variable}${requestScope.variable}設置會話變量的Spring MVC 3

設置,我可以在我的任何意見,然後使用一個會話對象要能夠使用會話,我需要設置<%@ page session="true" %>

回答

31

刪除會話變量是:

${sessionScope.yourVariable} 

查看Using Scope Objects瞭解更多信息。

如果您設置了<%@ page session="true">,那麼JSP會將會話作用域和頁面作用域合併爲一個名稱空間。然後,你可以這樣做:

${yourVariable} 

你可以把東西放到會話在MVC控制器是這樣的:

@RequestMapping("/test") 
@Controller 
public class TestController { 
    @RequestMapping(method = RequestMethod.GET) 
    public String testMestod(HttpServletRequest request) 
    { 
     request.getSession().setAttribute("testVariable", "Test Values!!"); 
     return "testJsp"; 
    } 
} 

最後,@SessionAttribute是爲一個specifc的使用情況,並且不把變量到會話使任何人都可以訪問它們:

下面是春季人們如何描述@SessionAttribute的功能:

@SessionAttributes以與 SimpleFormController的sessionForm相同的方式工作在 中。它將 命令(或對於@SessionAttributes 任何對象)放在第一個和最後一個請求(大部分時間是 初始GET和最終POST)之間的 持續時間的會話中。 之後,東西被刪除。

每個控制器有它自己的ModelMap 這樣東西在控制器1把作爲 @SessionAttributes 是不是在控制器2和 反之亦然可用。爲了達到這個目的,你將 必須自己手動將東西放在會話 上。

0

使用SessionAttributes註釋。檢查它在Spring文檔here

您也可以手動添加,如果你想訪問會話變量在視圖中做的最簡單的方法與DefaultSessionAttributeStore api