[英]Struts2 prepare method can not be handled
当我使用implements Preparable
和重写prepare()
方法时,如果在准备过程中遇到任何问题,我会使用com.opensymphony.xwork2.ActionSupport addActionError
设置操作错误。
在prepare方法设置了错误消息之后,我想在实际的initialize方法中处理此消息。
public class TestClass implements Preparable {
public void prepare() {
// ...
if (error) {
addActionError("error");
}
}
public String initializeAndDo() {
String target = ERROR;
// ...
return target;
}
}
当我调试它时,它永远不会到达initiliazeAndDo
方法并自动返回INPUT。
struts.xml:操作块中没有拦截器。
<action name="action_name" method="initializAndDo" class="TestClass">
<result name="input">/pages/input.jsp</result>
<result name="error">/pages/error.jsp</result>
</action>
有什么主意吗
当然; 这是正常现象。
如果有错误, "workflow"
拦截器将看到该错误,并转发到"input"
结果。
如果您不想中断(非标准)工作流程,请不要在prepare()
方法中设置错误。 一种替代方法是在prepare()
中设置一个可以在initializeAndDo
方法中检查的标志-这样可以防止"workflow"
使请求短路。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.