Struts でログイン ページを作成しようとしています。アイデアは、ユーザーが存在するかどうかなどを検証し、エラーがある場合は、エラーが赤で表示されたログイン ページに戻ることです (通常のログインまたは任意のフォーム ページの検証)。
誰かが Struts のエラー管理チュートリアルを知っているかどうか知りたいです。私は特にチュートリアル(または例)を探しています
<html:errors>
タグ、私の問題を解決すると思います。
Struts でログイン ページを作成しようとしています。アイデアは、ユーザーが存在するかどうかなどを検証し、エラーがある場合は、エラーが赤で表示されたログイン ページに戻ることです (通常のログインまたは任意のフォーム ページの検証)。
誰かが Struts のエラー管理チュートリアルを知っているかどうか知りたいです。私は特にチュートリアル(または例)を探しています
<html:errors>
タグ、私の問題を解決すると思います。
1 つ: //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description
ここでは Struts 1 を想定しています。Struts 2 で変更されたかどうかはわかりません。
メッセージリソースファイルにerrors.headerとerrors.footerを入れることができます:
errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>
ヘッダーとフッターは、ActionErrors オブジェクトにエラーがある場合にのみ表示されます。
Action クラスで、次のようにします。
ActionErrors errors = new ActionErrors();
if (badInput) {
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("error.bad.input", badString); // key in messages resource file
// badString will replace {0} in message
}
次に、戻る前に:
saveErrors(request, errors);
メッセージ リソース ファイル内:
error.bad.input=<li>Bad input: '{0}' is invalid.</li>
<html:errors/>
タグが処理されると、次のようになります。
<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>
ここに簡単な要約があります。クラスがあり、次ActionForm
のように言いますMyForm
。
<form-bean name="myForm" type="myapp.forms.MyForm"/>
クラスがあり、次Action
のように言いますMyAction
。
<action path="/insert" type="myapp.actions.MyAction" name="myForm"
input="/insert.jsp" validate="true" />
<forward name="success" path="/insertDone.jsp"/>
</action>
アクションの「名前」は、フォーム Bean の「名前」を参照します。クラスが自動的に呼び出されるメソッドを定義する必要validate="true"
があるため:ActionForm
MyForm
validate()
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ((username==null) || (username.length() < 1))
errors.add("username", new ActionError("error.username.required"));
return errors;
}
空の ActionErrors オブジェクトが返された場合、Struts は MyAction.execute() を呼び出します。それ以外の場合、Struts は /insert.jsp を表示し (それは指定した input= parm であるため)、html.errors タグを展開して ActionErrors からのエラーを表示します。