[Seasar-user:4255] Re: [S2JSF] テキストフィールドを空にしても、以前の値が再表示される

cero [E-MAIL ADDRESS DELETED]
2006年 8月 4日 (金) 02:34:04 JST


せろ@自己レスです。

org.seasar.jsf.component.html.S2HtmlInputTextの83行目で、
validationに通った場合(もしくはvalidatorが設定されていない場合)、
submittedValueにnullを詰めているようですが、
この一行を削除すれば、ひとまず問題は回避できました。


もし問題なければ、削ってしまいたいと思いますが、
後で、submittedValueがnullかどうかで、何か判定しているのでしょうか?

S2JSF/Myfacesの全体像が見えていないだけに、
削ってしまうのは、ちょっぴり不安です (^^;

すみませんが、分かる方、お願いします。

> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED] 
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of cero
> Sent: Friday, August 04, 2006 1:07 AM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:4254][S2JSF] テキストフィールドを空にしても、以
前
> の値が再表示される
> 
> 
> こんばんは、せろです。
> 
> S2JSFにて、DTOのライフサイクルをSESSIONとした時に、
> 「テキストフィールドを空にしても、バリデーションエラーが発生すると、
>  以前入力した値がテキストフィールドに表示される」
> という問題が起こっています。
> どなたか、既に解決/回避されていれば、教えて頂きたいと思います。
> 
> 
> 具体的には、Employee Managementでは、
> EmployeeDtoをSESSIONとすると、以下のように振舞います。
> ------------------------------------------------------------
>  1. Employee ManagementのCreate画面を開く。
>  2. 入力画面で、各フィールドに適切な値を入れる。
>  3. 「confirm」ボタンを押して、確認画面に進む。
>  4. 確認画面で「previous」ボタンを押して、入力画面に戻る。
>  5. 入力画面で、全フィールドの値をクリアする。
>  6. 「confirm」ボタンを押して、バリデーションエラーを発生させる。
> 
> → ここで、必須入力である「EmployeeNo」と「EmployeeName」を除き、
>  各フィールドの値が、2.で入力した値となる。
> ------------------------------------------------------------
> 
> 各フィールドに何らかの値を入力した場合は、
> バリデーションエラーが発生しても、以前の値に戻る事はありません。
> 
> 「REQUESTの値が空なら、SESSIONから値を取得する」
> という動作をしているのでしょう。
> ただ、requiredの項目だけは、入力した値が反映されているため、
> 何か回避策があるのでは、と思っています。
> 
> # もちろん、SESSIONではなく、REQUESTを使えば解決しますが、
> # hiddenタグを減らすために、SESSIONを使いたいんですよね。
> 
> 
> なお、再現方法は以下の通りです。
> 
> ------------------------------------------------------------
> 1. S2JSF Example 1.0.15を動かせる状態にする。
> 
> 2. EmployeeDtoに以下の一行を追加。
> public static final String COMPONENT = "instance = session";
> 
> 3. ビルドして、Tomcatを起動。
> 
> 4. 上の方に書いた通りの遷移を行なう。
> ------------------------------------------------------------
> 
> 以上、よろしくお願いします。
> 
> 
> # 自分でも、ソース見てみます (^^;
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED] 
https://www.seasar.org/mailman/listinfo/seasar-user





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