gpt4 book ai didi

java - 为什么 "return ERROR"仅适用于异常?

转载 作者:行者123 更新时间:2023-12-02 07:43:53 46 4
gpt4 key购买 nike

在 struts.xml 中我使用:

<result name="error">error</result>

然后在我的行动中我使用:

addActionError("ERROR RETURNED");
return ERROR;

当我提交表单时,它只是转到一个空白页,什么也不做。但是,如果我强制在操作中抛出异常,那么它会转到错误页面并显示 ActionError 消息。那么我这样做错了吗?如果是这样,我应该如何告诉struts使用“if语句”显示错误页面,而不是仅仅依赖昂贵的try catch?

请查看下面的编辑以了解更多详细信息。

编辑1:

我使用的是struts 2版本:2.1.8.1

编辑2:

例如,这是我用来测试的操作代码:

String test = "";
int number = 0;
try {
if (number == 1) {
test = SUCCESS;
} else if (number == 2) {
addActionError("ERROR RETURNED?");
test = ERROR;
} else if (number == 3) {
addActionError("ERROR RETURNED?");
test = INPUT;
} else {
test = LOGIN;
}
} catch (Exception e) {
addActionError("ERROR RETURNED? " + e);
}
return test;

这是我的 number.jsp 代码:

<s:form action="number_save" method="post">
<s:textfield name="number" label="Enter number" />
</s:form>
<s:actionerror />

编辑3:

这是我的 struts.xml 的较长版本:

 <action name="number" method="numberCreate" class="NumberActionBean">
<result>number.jsp</result>
</action>

<action name="error">
<result>error.jsp</result>
</action>

<action name="number_save" method="numberSave" class="NumberActionBean">
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success" type="redirect">index</result>
<result name="input" type="redirect">number</result>
<result name="error">error</result>
<result name="login" type="redirect">login</result>
<result name="none">number</result>
</action>

编辑4:

我的error.jsp就是一个<s:actionerror />带有通用标签库和 html 标签的标签...

结论

我无法显示AddActionError消息,除非有异常(exception)。我无法使用if我的行动中的陈述。

最佳答案

也许你应该这样做:

<result name="error">error.jsp</result>

然后在error.jsp中:

<s:actionerror/>

我不确定,如果你只输入“error”而不是“error.jsp”作为结果,struts会将“error”作为一个 Action ,所以你不会收到错误消息。

最好,j

您的编辑 3:

<action name="error">
<result name="error">error.jsp</result>
</action>

<action name="number_save">
<result name="error" type="redirectAction">error</result>
</action>

关于java - 为什么 "return ERROR"仅适用于异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186056/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com