[Seasar-user:5912] Re: Validationエラー後の条件分岐

森 和紀 [E-MAIL ADDRESS DELETED]
2007年 1月 26日 (金) 13:22:53 JST


お世話になっております。森です。

ForEach内だとバリデーションエラー時に条件分岐がうまくいかないようです。
下記の対応方法で解決できます。

<対応方法>
Conditionによる条件分岐を下記対応方法に差し替える。

1.DynamicPropertyを使用する。(spanタグでconditionを実現する方法)

  HTML------------------------------
    <span id="flag1" style="dummy">
        <span>メッセージあり</span>
    </span>
    <span id="flag2" style="dummy">
        <span>メッセージなし</span>
    </span>
    
  ----------------------------------

  Pageクラス------------------------
    public String getFlag1Style() {
        if (!isDisp()) {
            return "display:none;";
        }
        return null;
    }
    public String getFlag2Style() {
        if (isDisp()) {
            return "display:none;";
        }
        return null;
    }
  ----------------------------------

2.Conditionを使用しないで、処理で表示する文字列を変更する。
    <span id="hoge"></span>

    getHoge() {
        if (this.isDisp) {
            return "メッセージあり";
        }else {
            return "メッセージなし";
        }
    }

> 
> お世話になっております。森です。
> 
> Validationエラー後にConditionによる条件分岐がうまくいきません。
> Validationエラー後の分岐がtrueまたはfalseのどちらかとなってしまいます。
> なぜこうなるのでしょうか?
> よろしくお願いいたします。
> 
> Teeda-1.0.3を使用
> prerenderでflgInfoItemsを毎回生成する。
> flgInfoItemsには、isDispがtrueとfalseを交互に返すように設定している。
> 
> 例)flgInfoItemsに true,false,true を返す3つのitemを設定
> <結果 初期表示や再表示>
> メッセージあり 
> メッセージなし 
> メッセージあり 
> 
> <Validationエラー後>
> メッセージあり 
> メッセージあり 
> メッセージあり 
> 
> ---------------------------------------------------------------------
> <span id="allMessages"></span>
> <table id="flgInfoGrid">
>   <thead>
>     <tr><td>タイトル</td></tr>
>   </thead>
>   <tbody>
>     <tr>
>       <td>
>         <div id="isDisp"><span>メッセージあり</span></div>
>         <div id="isNotDisp"><span>メッセージなし</span></div>
>       </td>
>     </tr>
>   </tbody>
> </table>
> 
> <table>
>   <tr>
>     <td>■必須項目</td>
>     <td><input type="text" id="name" label="名称" /></td>
>   </tr>
> </table>
> <input type="submit" id="doCheck" value="確認"/>
> 
> ---
> pageクラスのValidation
> 
>     @Required(target = "doCheck")
>     public void setName(String name) {
>         this.name = name;
>     }
> 
> ---------------------------------------------------------------------
> 
> 以上です。
> 
> ===========================================
> 株式会社ビルドシステム
> 森 和紀 <[E-MAIL ADDRESS DELETED]>
> TEL: 03-3226-3782
> ===========================================
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user


以上です。





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