但是有很多地方又需要用到request
通过request可以操作很多东西.
比如:
HttpSession session = request.getSession(); session.setAttribute("object", object); request.setAttribute("object", object);等等...
既然不让直接调用,那就得想办法调用.
每个Strut2文件都需要继承一个类:ActionSupport.想要调用request需要实现两个接口.所有有了以下解决方案
1.自定义一个基础类.继承ActionSupport类并且时间ServletRequestAware, ServletResponseAware接口.
2.在基础类中得到想要的东西.比如request,response或者session.
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware{ private static final long serialVersionUID = 1L; public HttpServletRequest request; public HttpServletResponse response; @Override public void setServletResponse(HttpServletResponse response) { this.response=response; } @Override public void setServletRequest(HttpServletRequest request) { this.request=request; } }
如果用到session的话,也可以取出session来.
3.以后每个Struts2的java类继承这个BaseAction 类就可以同时使用了.
高手勿喷.