プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java、SAStruts、入力チェック(3)独自検証用メソッドによるチェック
Java、SAStruts、入力チェック(2)独自検証用アノテーションによるチェック」の続きです。
それでは今回は実際に独自検証用のメソッドを作って呼び出してみましょう(--)b

1.チェック用メソッドを作る
  package hoge.form;
  
  import org.apache.struts.action.ActionMessage;
  import org.apache.struts.action.ActionMessages;
  import hoge.util.PropertyResourcesUtil;
  
  
  public class HogeForm {
      public String hoge_id;
      public String hoge_id2;
  
      /**
       * パラメータの論理的整合性チェック
       */    

      public ActionMessages checkHoge() {
          ActionMessages retValue = new ActionMessages();
  
          if(this.hoge_id != this.hoge_id2){
              //チェックNG
              retValue.add(ActionMessages.GLOBAL_MESSAGE, 
                  new ActionMessage("errors.invalid","untyara"));
          }
  
          return retValue;
      }

  }

戻り値は「ActionMessages」です。
検証メソッドはActionかActionFormに実装しなさいとなっていたのですが、
これはパラメータのチェックだから
パラメータとまとめておけってことなんでしょうね。
ActionForm使っているならActionForm、
使っていないなら仕方ないからActionに書けや、ってことだと思います。

もちろん実際のチェック処理自体はutilとかに作ってそれを呼ぶ形でも構いません。
てか私はそうしています。
チェック自体は別のところでやって、その結果を受け取って
メッセージ設定するところだけActionForm内で実装。


2.チェック用メソッドを呼ぶ
  package hoge.action;
  
  import javax.annotation.Resource;
  import org.seasar.struts.annotation.ActionForm;
  import org.seasar.struts.annotation.Execute;
  import hoge.form.MsgForm;
  
  public class HogeAction {
      /** アクションフォーム */
      @ActionForm
      @Resource
      protected HogeForm hogeForm;
  
      /**
       * 初期表示
       * 
       * @return String 遷移先ページ
       */
      @Execute(validator = false)
      public String index() {
          return "index.jsp";
      }
  
      @Execute(
validate = "checkHoge", input="inputerr.jsp")
      public String doSearch() {
          return "list.jsp";
      }
  }


Actionの実行メソッドにて@Executeアノテーションで
「@Execute(validate = "checkHoge", input="xxx.jsp")」とかするだけ。
複数呼びたい場合は「validate = "checkHoge1, checkHoge2"」な感じで
カンマ区切りで指定して下さい。

ふぃー、やっと終わった


Java、SAStruts、入力チェック(1)検証タイミングと種類

Java、SAStruts、入力チェック(2)独自検証用アノテーションによるチェック

Java、SAStruts、入力チェック(3)独自検証用メソッドによるチェック
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Java  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事