私が使用するstruts.xmlでは:
<result name="error">error</result>
次に、私のアクションで使用します:
addActionError("ERROR RETURNED");
return ERROR;
フォームを送信すると、空白のページに移動し、何もしません。ただし、アクションで強制的に例外をスローすると、エラー ページに移動し、ActionError メッセージが表示されます。だから私はこれを間違っていますか?もしそうなら、高価なトライキャッチだけに頼るのではなく、「ifステートメント」を使用してエラーページを表示するようにストラットに指示するにはどうすればよいですか?
詳細については、以下の編集をご覧ください。
編集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:
Myは、一般的な taglibs と html タグを含むerror.jsp
単なるタグです...<s:actionerror />
結論
AddActionError
例外がない限り、メッセージを表示できません。if
アクションでステートメントを使用できません。