Struts2中调用request方法
Struts2跟servlet不一样.不能直接调用request
但是有很多地方又需要用到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;@Overridepublic void setServletResponse(HttpServletResponse response) {this.response=response;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request=request;}}
如果用到session的话,也可以取出session来.
3.以后每个Struts2的java类继承这个BaseAction 类就可以同时使用了.
高手勿喷.