...
- Ensure that
servlet-config
Interceptor is included in the Action's stack.The default stack already includes
servlet-config
.
- Edit the Action so that it implements the ServletRequestAware interface.
- The ServletRequestAware interface expects a
setServletRequest
method. You may wish to include a companiongetServletRequest
method.
- The ServletRequestAware interface expects a
- At runtime, call
getServletRequest
to obtain a reference to the request object.Info When the
servlet-config
Interceptor sees that an Action implements ServletRequestAware, it passes a reference to the request the Action'ssetServletRequest
method.
@see action struts-default.xmlTip It is more difficult to test Actions with runtime dependencies on HttpServletRequest. Only implement ServletRequestAware as a last resort. If the use case cannot be solved by one of the other
servet-config
interfaces (ApplicationAware, SessionAware, ParameterAware), consider whether an custom Interceptor could be used instead of Action code. (Review howservlet-config
works for examples of what can be done.)
@see org.apache.struts.action2.interceptor.ServletRequestAware
@see org.apache.struts.action2.interceptor.ServletConfigInterceptor