4

最近我将我的 struts2 版本从 2.0.11 更新到了当前的 2.2.3。不幸的是,我现在有一些奇怪的问题,到目前为止我无法解决。

当我尝试获取 ActionContext 时:

ActionContext context = ActionContext.getContext();  
System.out.println("context: " + context);

上下文现在为空!这里奇怪的是,根据 API 所说,它不能为 null -> getContext API desc

这似乎不是一个普遍的问题,因为我没有通过谷歌找到一个类似的案例。由于我只是更新struts2版本后出现问题,我尝试交换不同的库,但我没有更进一步。因此,我希望你们中的某个人可以帮助我!

我没有更多的想法可以尝试解决这个问题。

问候奥茨

.

编辑1:

你好 umesh awasthi!是的,它在以前的版本中运行了很长时间。不幸的是,日志文件并没有告诉我太多。只有当我尝试访问 ActionContext.getContext(); 时才会发生 NullpointerException 目的。

这是我使用它的一个代码示例

public CharServiceImpl(){  
    ActionContext context = ActionContext.getContext();
    //currently it crashes here since the context variable is null
    Map<String,Object> appCon = context.getApplication();
    if (appCon != null){
        charIdsToUpdate = (ArrayList<Integer>) appCon.get("charIdsToUpdate");
    }
}

@Steven Benitez:我正在使用FilterDispatcher(但是,我不得不承认我什至不知道有不同的......)

顺便说一句:我在最后几天尝试通过使用堆栈交换登录的功能登录“。我只得到 3 个“运行点”但没有登录公式?现在我使用了我的 gmail 帐户,这是不是我真正想做的,但我不想让你等待我的反应。

4

1 回答 1

0

尝试使用 ServletActionContext 创建 ActionContext

class Abc implements ServletRequestAware
{
    HttpServletRequest request;
    public CharServiceImpl()
    {
      ActionContext actionContext =    ServletActionContext.getActionContext();
    }

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

    public HttpServletRequest getServletRequest() 
    {
      return this.request;
    }
}
于 2015-04-17T07:07:11.617 回答