0

这在一个月前有效,现在我重新加载代码但它不起作用。这是我的 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>

再一次,这在一个月前工作得很好。我所做的只是检查那个未被触及的分支并部署它。现在它不起作用。

4

1 回答 1

1

一个快速的解决方法可能是将其添加getCheckListCheckAction

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"); 
}

这不是一个好的永久性解决方案,但应该让你到达你需要的地方!

于 2012-07-10T12:53:48.657 回答