[Seasar-user:9422] [S2JSF1.0.25]Select項目の値を空にしても、以前の値が再表示される

SCC 花岡 貴志 [E-MAIL ADDRESS DELETED]
2007年 7月 25日 (水) 14:08:31 JST


はじめまして。
花岡と申します。
以後よろしくお願いいたします。

実行環境
・JDK1.5.0_07
・S2JSF1.0.25
・Tomcat5.5.17
を使用しております。

早速なのですが、以前メーリングリスト4254にてテキストフィールドを
空にしても、以前の値が再表示されるという問題が発生していましたが、
Selectタグにおいても同様の事象が発生致します。


具体的な動作は、SelectOneMenu にてSelectOneMenuDtoをSessionとすると、
以下のような動作となります。
------------------------------------------------------------
 1. SelectOneMenu 画面を開く。
 2. 入力画面で、各フィールドに適切な値を設定する。
 3. 「submit」ボタンを押して、自画面遷移を行う。
 4. AaaとBbbの値をPlease selectに変更する。
 5. 「submit」ボタンを押して、必須エラーを発生させる。

→ 上記の際に、必須入力である「Aaa」を除き、各フィールドの値が、
 2.で設定した値となってしまいます。


ソースを解析したところ、HtmlSelectOneMenuRendererクラスにて
使用しているValueHolderUtil.getValueAsStringメソッドで、
SubmittedValueがNullの場合はValueHolderのValue値を返却
している為、上記の事象が発生しているようです。

ちなみに、必須エラーとなっているAaaのValueはブランク、
BbbのValueはNullがSubmittedValueの値として設定されていました。


なお、再現方法は以下の通りです。

------------------------------------------------------------
1. S2JSF Example 1.0.25を動かせる状態にする。

2. SelectOneMenuDtoに以下の一行を追加。
  public static final String COMPONENT = "instance = session";

3. ビルドして、Tomcatを起動。

4. 上の方に書いた通りの遷移を行なう。
------------------------------------------------------------

ユーザの受入試験がまもなく始まる為、出来れば早期に対応して頂けると
非常に助かります。

以上、よろしくお願い致します。





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