JavaとStrutsに関しては、私は初心者です(Java世界の.Net少年のように感じます)。
使用されるアクション要素の入力属性は何ですか?したがって、以下の例では、入力はsomeinput.jspです。
<action path="/somepath"
type="SomeAction"
name="SomeForm"
scope="session"
input="someinput.jsp">
フォームBean SomeForm
が検証エラーを返す場合、ページsomeinput.jsp
が返されます。 対応するDTD を引用するには:
「name」を指定した場合のみ有効です。 「name」が指定され、入力Beanが検証エラーを返す場合は必須です。 「name」が指定され、入力Beanが検証エラーを返さない場合はオプション。
Strutsは、input
属性で指定されたフォームで検証が失敗した場合、name
属性で指定されたページ/アクションにユーザーを転送します。
上記にかかわらず、アクションの実行(単一のアクションユニットでも複数のアクションユニットでも)で結果を指定することもできます。つまり、SUCCESS
、FAILURE
、またはINPUT
。
Strutsバリデータプラグインは、ビューから作成されたフォームBeanインスタンスをインターセプトし、コントローラに移動する前に検証を行います。データがエンドユーザーの検証ルールに違反している場合、エラーオブジェクトは、値として指定されている入力属性ビューでダイジェストされます。
これは、入力属性のjspへのリダイレクト用です。ただし、アクションコントローラーでは、mapping.findForward()ではなく、mapping.getInputForward()を指定する必要があります。
Struts-configファイル:
<action input="test.jsp"
name="testActionForm"
path="/test"
scope="session" type="package.TestActionController">
</action>
アクションコントローラー:
public ActionForward doMethod(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
return mapping.getInputForward();
}