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 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.