Java JSP上不会显示操作错误
我已经尝试在action类中添加操作错误,并在JSP页面上打印它们 当异常发生时,它将进入catch块,并在控制台中打印“插入异常时出错,请与管理员联系” 在catch块中,我添加了Java JSP上不会显示操作错误,java,jsp,struts2,struts2-interceptors,Java,Jsp,Struts2,Struts2 Interceptors,我已经尝试在action类中添加操作错误,并在JSP页面上打印它们 当异常发生时,它将进入catch块,并在控制台中打印“插入异常时出错,请与管理员联系” 在catch块中,我添加了addActionError(),并尝试在jsp页面中打印它。。。 但该消息未显示在jsp页面中 我可能遗漏了什么或做错了什么 Struts映射: ../Aggregator/redirectToDataUpdate 行动类: public String updation() throws JiffieTrans
addActionError()
,并尝试在jsp页面中打印它。。。
但该消息未显示在jsp页面中 我可能遗漏了什么或做错了什么 Struts映射:
../Aggregator/redirectToDataUpdate
行动类:
public String updation() throws JiffieTransactionException{
try {
// do stuff...
} catch (NumberFormatException e) {
addActionError("Error in inserting the Exception, Contact the Admin");
System.out.println("Error in inserting the Exception, Contact the Admin");
e.printStackTrace();
}
return SUCCESS;
}
用于打印操作错误的JSP代码:
在catch块中添加操作消息,如:
addActionMessage("Error in inserting the Exception, Contact the Admin"); //in catch block
然后在jsp上编写:
<s:if test="hasActionErrors()">
<br></br>
<div class="errors">
<font color="red">
<s:actionerror/>
</font>
</div>
<s:if test="hasActionMessages()">
<div class="errors">
<font color="red">
<s:actionmessage/>
</font>
</div>
</s:if>
</s:if>
执行重定向操作时,会创建一个新请求,因此所有actionMessages、actionErrors以及所有其他参数(未明确声明在struts配置中传递)都将丢失
然后
- 使用默认结果而不是结果,或
- 使用保留重定向中的错误和消息,或
- 出现错误时,返回类型为dispatcher的不同结果,例如
:ERROR
..重定向到数据更新 previousPage.jsp
公共字符串更新(){ 试一试{ //做些事情。。。 回归成功; }捕获(数字格式){ addActionError(“错误…”); e、 printStackTrace(); 返回误差; } }
result.JSP
(如果没有指定结果类型,则假定为type=“dispatcher”
),但是,结果不应该映射到JSP页面,它应该映射到struts的另一个操作,然后您需要使用MessageStore拦截器,或者在第一个操作中将数据放入会话中,然后在第二个操作中自己从会话中检索数据(并清除会话)。请确保在成功和出错的情况下,您需要映射另一个操作谢谢您的回答。你节省了很多时间。我学到了新概念。添加操作消息有什么原因或解释吗。@RaghuMarkeffy:您在问题中提供的代码。