はチュートリアルや例をストラット
-
06-09-2019 - |
質問
私は、Strutsでのログインページを作成しようとしています。アイデアは、ユーザが存在する場合など、検証し、エラーがある場合、赤色のエラー(典型的ログインまたは任意のフォームページの検証)とログイン・ページに戻ることがある。
私は誰かがStrutsの中のエラー管理のチュートリアルを知っているかどうかを知りたいと思います。私は
のチュートリアル(または例)のために特別に探しています<html:errors>
私は私の問題を解決すると思います。タグ、
解決
ここでは簡単な要約です。あなたは、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>
アクションで「名前」は、フォームビーンの「名前」を意味します。あなたは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;
}
それはStrutsのは、あなたのMyAction.executeを呼び出すために行く、空のActionErrorsオブジェクトを返した場合()。それ以外の場合は、Strutsのは(それはあなたが与えた入力= PARMだから)/insert.jsp表示したActionErrorsから自分のエラーを表示するにはhtml.errorsタグを展開します。
他のヒント
ここに1つです。 //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description
ここで私はそれがStrutsの2のために変更された場合、私は知らないのStruts 1を想定しています。
あなたのメッセージリソースファイルにで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>
Strutsアクションでます:
ActionErrors errors = new ActionErrors();
errors.add("", new ActionMessage("login.msg.err"));
saveErrors(request, errors);
"hello.msg.errは" MessageBundle.propertiesで定義されます。
login.msg.err=Wrong user name or password
あなたJSPでは、エラーがhで表示されます:errorsタグ:
<h:errors/>
このビデオでは、ステップバイステップ&あなたにすべてのそれらの事を説明し示しています。 https://youtu.be/YcCsJtqI72Aする