質問

私は、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する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top