Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Accessing application, session, request objects |
The framework provides several access helpers to access Session, Application, Request scopes.
Web agnostic (independent of the servlet API) with a single line of code.
Map session = (Map) ActionContext.getContext().get("session"); session.put("myId",myProp);
ServletActionContext.getRequest().getSession()
Do not use ActionContext.getContext() in the constructor of your Action class. The values may not be set up, and the call may return null for getSession(). |
If you must have get access to the HttpSession, use the ServletConfigInterceptor (see test:Interceptors).
In your views, you can access with your JavaServer Pages with calls to the implicit properties session and request.
<saf: property value="#session.myId" /> <saf: property value="#request.myId" />
All the servlet scopes can be accessed via the ActionContext.
Map request = (Map) ActionContext.getContext().get("request"); request.put("myId",myProp); Map application = (Map) ActionContext.getContext().get("application"); application.put("myId",myProp); Map session = (Map) ActionContext.getContext().get("session"); session.put("myId", myProp); Map attr = (Map) ActionContext.getContext().get("attr"); attr.put("myId",myProp);
The attr map will search the javax.servlet.jsp.PageContext for the specified key. If the PageContext doean't exist, it will search request}, {{session, and application respectively.