我有一個運行Spring 3.0並使用Spring-MVC的Web應用程序。我已經建立了這樣幾個控制器:是否可以跨多個控制器訪問Spring MVC帶註釋的會話變量?
@Controller
@RequestMapping("/admin")
@SessionAttributes({"clientLogin", "selectTab", "user", "redirectUrl"})
public class AdminController {
...
}
@Controller
@SessionAttributes({"clientLogin", "selectTab", "user", "redirectUrl"})
public class PublicController {
....
}
我可以添加一些註釋變量引入ModelMap像
map.addAttribute("user", "Bob");
這工作正常,以堅持當前控制器的變量;我可以從該控制器中的任何其他方法訪問modelMap中的var。但是,當用戶點擊另一個控制器中的頁面時,即使@SessionAttributes中列出了相同的變量,但它在第二個控制器中不可用。
是否有可能使用註釋跨多個控制器訪問這些註釋變量?
這裏有一個相關的討論中,我有,你可能會發現有趣的鏈接:http://forum.springsource.org/showthread.php?t=77305 – 2010-10-18 02:49:37
這很有趣,謝謝。鑑於你遇到的麻煩(儘管它似乎已經從Spring 2.5改爲3.0),你甚至會嘗試使用SessionAttributes嗎? – Travelsized 2010-10-18 13:43:44
它們適合於他們設計的目的 - 簡單的請求 - 響應交互。如果你發現你正在使用多個控制器進行大量的會話風格流程,那麼Spring MVC並不是真正爲此設計的 - 你應該看看Spring Webflow。 – 2010-10-18 22:40:03