错误没有被传递回struts jsp

时间:2012-07-10 12:18:33

标签: struts2

这个工作在一个月前,现在我重新加载代码,它不起作用。这是我的struts剪辑

    <action name="checkManager" class="CheckAction">
        <result>/pages/check_manager.jsp</result>
    </action>

    <action name="submitFile" class="SubmitFileAction">
        <result name="success">/pages/submit_file.jsp</result>
        <result name="error">/pages/check_manager.jsp</result>
    </action>

所以,第一页是checkManager。它有一个调用submitFile动作的按钮。当它触发时,它会检查密码,如果失败,则动作类会发送错误结果。现在一个月前,上面的结果错误会将用户重定向回原始的check_manager.jsp页面,其中包含最初加载的数据和错误消息。今天,它将用户重定向到原始check_manager.jsp页面。没有数据,它就像servlet永远不会被解雇,它只是渲染一个空白的jsp页面。我查看了源历史记录,此应用程序中没有任何更改。

我不明白为什么会停止工作,有人能给我一个想法吗?我必须在大约一个半小时内向客户提出这个问题,所以我真的被困在这里。

请注意,我尝试将错误更改为此

<result name="error" type="redirectAction">checkManager</result>

然后我恢复了我的数据,但是我丢失了我的错误信息,这不是一件好事。呃,有什么想法吗?

if (enteredHash.equals(storedHash)) {
            _log.debug("The password matched");
            UserSession<User> userSession = (UserSession<User>) session
                    .get("user");
            #do logic#
        } else {
            _log.debug("The password didn't match");
            addActionError("The password you entered was incorrect, nothing was sent to the bank.");
            return ActionSupport.ERROR;
        }
        return ActionSupport.SUCCESS;

我的jsp

<s:if test="hasActionErrors()">
            <div class="errors">
            <s:actionerror/>
            </div><br>
        </s:if>

再次,这在一个月前完美地运作了。我所做的就是检查那个未受影响的分支并进行部署。现在它不起作用。

1 个答案:

答案 0 :(得分:1)

快速解决方法可能是将其添加到getCheckList中的CheckAction

public Collection<Check> getCheckList() { 
   ActionContext.getContext().getSession().put("checkList", checkList);
   return checkList; 
}

并将其添加到SubmitFileAction

public Collection<Check> getCheckList() { 
   return (Collection<Check>) ActionContext.getContext().getSession().get("checkList"); 
}

这不是一个好的永久性解决方案,但应该让你在紧急情况下到达目的地!