[Seasar-user:5189] Re: [S2Struts] DispatchAction使用時のValidationについて

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2006年 11月 17日 (金) 23:10:45 JST


永島です。

ValidatorFormから派生しているFormBeanであれば、
以下のようにValidatorForm#getValidationKeyを変えることにより、
任意のルールを適用できると思います。
ただ、1つのFormBeanからアノテーションで複数のvalidationルールを定義する機能は
S2Strutsでは提供しておりません。

---
public class MyForm extends ValidatorForm {
  protected String command;

  public String getValidationKey(ActionMapping mapping,
      HttpServletRequest request) {
    return super.getValidationKey(mapping, request)  + "." + this.command;
  }
}
---
---
<form name="myForm.retrieve1">
    :
</form>
<form name="myForm.retrieve2">
    :
</form>
---


06/11/17 に Shinichiroh Takezaki [Virtual
Technology]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 竹崎と申します。
> 永島さん、先日はいろいろありがとうございました。
>
> 今度はS2StrutsのValidationで困っています。
>
> プロジェクトの方針で以下のような前提があります。
>
> <前提>
> 1) DispatchActionで、struts validator(commons validator)を使う
> 2) メソッドごとのValidationを行う必要があり、validwhenを使って、commandパラメータの値をチェックすることで対応したい。
> 3) commons validatorの修正は行いたくないが、validation-ruleの追加はよい。
>
> 以下のことが確認できています。
>
> <確認できていること>
> 1) Actionの定数アノテーションでvalidation=trueとすることでstruts validatorは有効となる
> 2) 以下のように書くことで、メソッドretrieve1を実行するときのmessageの存在チェックはできる
>
> <form name="fooForm">
>             <field property="command"
>                     depends="required">
>                 <arg key="fooForm.command"/>
>             </field>
>             <field property="message"
>                     depends="validwhen">
>                                 <arg0 key="タイトル" resource="false" />
>                                  <var>
>                                         <var-name>test</var-name>
>
> <var-value>((command!='retrieve1')or(*this* != null))</var-value>
>                                 </var>
>             </field>
>         </form>
>
> <やりたいこと>
> 1) validawhen以外のルールで、例えば、maskなどと組み合わせて使いたい
>      例えば、「retrieve1の実行時は、messageが英数」といったチェックを以下のように書いても当然ですが機能しません。
>
> <form name="fooForm">
>             <field property="command"
>                     depends="required">
>                 <arg key="fooForm.command"/>
>             </field>
>             <field property="message"
>                     depends="validwhen,mask">
>                                 <arg0 key="タイトル" resource="false" />
>                                 <var>
>                                         <var-name>test</var-name>
>
> <var-value>((command!='retrieve1')or(*this* != null))</var-value>
>                                 </var>
>                                 <var>
>                                         <var-name>mask</var-name>
>                                         <var-value>^[0-9a-zA-Z]*$</var-value>
>                                 </var>
>             </field>
>         </form>
>
> s2strutsというより、strutsのvalidationの話ですが、s2strutsを利用される方もきっと直面する問題かと思います。s2strutsでこのような複合的なルール設定のやり方をご存知でしたらお願いします。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



Seasar-user メーリングリストの案内