[Struts] エラーメッセージ表示

画面編集

すべてのエラーメッセージを表示する場合

例) <html:errors />
この表記がある箇所にそのページのエラーがすべて表示される。
例) <html:messages id="msg" message="true">
      <bean:write name="msg" ignore="true"/>
    </html:messages>
こちらが使われることもあるかもしれないので抑えておく。

個別のエラーメッセージを表示する場合

例) <html:errors header="false" footer="false" property="userId" />
userIdがエラーの場合、この行がある個所にエラーを表示する。


エラーメッセージをリソースファイルに登録

例) application-message.properties
    errors.numericNumber={0}には数値で入力してください。
    errors.maxLength={0}には{1}文字以下で入力してください。

※)リソースファイルの位置をstruts-config.xmlに記入する。
例) <message-resources parameter="~~.ApplicationResources"/>

フォームBeanに検証ロジックを持たせる

フォームBeanを作成する

package shiten.struts;

import org.apache.struts.action.*;
import org.apache.struts.validator.ValidatorForm;
import javax.servlet.http.*;

public class ShitenEditC1Form extends ValidatorForm {

 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
  ActionErrors errors = new ActionErrors();

  if (shitenCode == null || shitenCode.trim().equals("")) {
   errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.shitenCode.required"));
  }
  return errors;
 }
}
フォームBeanを ActionFormではなく、org.apache.struts.validator.ValidatorForm を継承して作成します。継承したクラスには、オーバーライドメソッド validate()を記述します。このクラスはチェックが正常に終了したら要素を持たないActionErrorsオブジェクトを、エラーが発生したらその内容を説明するActionErrorオブジェクトを含む ActionErrorsオブジェクトを返すように書きます。

struts-config.xmlのActionマッピングを設定

<action-mappings>
 <action path="/ShitenEditC1" type="shiten.struts.ShitenEditC1Action"
  attribute="ShitenEditC1Form" name="ShitenEditC1Form"
  scope="request" validate="true" input="/ShitenEditC1.jsp">
  <forward name="retry" path="/ShitenEditC1.jsp"/>
  <forward name="success" path="/ShitenEditC2.jsp"/>
 </action>


最終更新:2010年10月26日 10:04
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。