当前位置: 代码迷 >> Java Web开发 >> 继承了ServletContextAware仍是不能获取request
  详细解决方案

继承了ServletContextAware仍是不能获取request

热度:180   发布时间:2016-04-16 21:58:18.0
继承了ServletContextAware还是不能获取request
public class BaseAction extends ActionSupport
  implements ServletRequestAware, ServletResponseAware, ServletContextAware,SessionAware
{
  Map<String, Object> session;
  HttpServletResponse response;
  HttpServletRequest request;
  protected ServletContext application;

@Override
public void setServletContext(ServletContext arg0) {
  this.application=arg0;

}
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response=arg0;

}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;//这是ServletRequestAware里面的方法
System.out.println(request);

}
@Override
public void setSession(Map<String, Object> arg0) {
this.session = arg0;

}

  


   <interceptors>
       <interceptor-stack name="sameStack">
          
          <interceptor-ref name="defaultStack"/>
          <interceptor-ref name="servletConfig"/>
       </interceptor-stack>
   </interceptors>


搞死人了,不是说继承了ServletRequestAware配置servletConfig拦截器就可以获取request对象吗
------解决方案--------------------
可直接继承org.apache.struts2.dispatcher.DefaultActionSupport,然后用ServletActionContext.getRequest()获取
------解决方案--------------------

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;

public class PomInfoAction extends ActionSupport implements
ServletRequestAware, ServletContextAware, ServletResponseAware {
....
}

看看你import的包对不对
  相关解决方案