在action中怎样才能获得request,response对象啊 ,为什么我获取时老是报NullPointerException啊 怎么回事
HttpServletRequest request=null;
 try {
 request=ServletActionContext.getRequest();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

解决方案 »

  1.   

    不知道你有没有设置拦截器,如果设置拦截器了的话,一定要在拦截器栈中将默认拦截器也加上。
    <interceptor-ref name="defaultStack"></interceptor-ref> 切忌这个默认拦截器一定要加上。否者这些对象在Action中都获取不到了。
      

  2.   

    你是指filter还是别的??我用了Filter
      

  3.   

     你可以在拦截器那里断点  在那里面试试能不能拿到request
      

  4.   

    <package name="" extends="struts-default">
      

  5.   

    可以让action实现ServletRequestAware接口,实现该接口的方法
    public class LoginAction extends ActionSupport implements ServletRequestAware
    下面的方法是ServletRequestAware中的方法,必须实现
    public void setServletRequest(HttpServletRequest request) {
    // TODO Auto-generated method stub
    this.request=request;

    }
      

  6.   

    HttpServletResponse response = ServletActionContext.getResponse();
    HttpServletRequest request = ServletActionContext.getRequest();
      

  7.   

    楼上三楼正解。。让呢自定义的action实现ServletRequestAware接口.......具体谷歌
      

  8.   

    你们说的方法我也试过 ,我那个是自定义MVC框架,在项目里面添加struts时你们说的方法可行,这是不是自定义与添加的区别呢