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;
	@Override
	public void setServletResponse(HttpServletResponse response) {
		this.response=response;		
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request=request;		
	}

}


如果用到session的话,也可以取出session来.
   3.以后每个Struts2的java类继承这个BaseAction 类就可以同时使用了.

高手勿喷.

猜你喜欢

转载自yuelangyc.iteye.com/blog/1055595