这个工作在一个月前,现在我重新加载代码,它不起作用。这是我的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>
再次,这在一个月前完美地运作了。我所做的就是检查那个未受影响的分支并进行部署。现在它不起作用。
答案 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");
}
这不是一个好的永久性解决方案,但应该让你在紧急情况下到达目的地!