[Seasar-user:21503] 【SAStruts】セッションに設定したActionFormのページ単位の切り替えについて

hikaru kondo [E-MAIL ADDRESS DELETED]
2012年 11月 26日 (月) 10:45:49 JST


初めまして。近藤です。

Dolteng-0.42.0 を用いてSAStruts + S2JDBC + Tilesで開発を行っております。
SAStruts は、1.0.4です。

以下問題と現象です。
二つの画面があり、両方の画面共にアクションフォームをセッションに設定しています。
現在その二つの画面間をLink(get送信)で移動しています。
その場合に、遷移先の画面を表示する際に、StrutsTagにて以下のエラーがおきます。
ActionFormWrapper  xxxのプロパティに対するgetterメソッドがありません。
二回目以降(F5)は、エラーもなく表示されます。

調べたところ、CheckBoxTag:154行目にて、TagUtils.getInstance().lookup(pagecontext,
name, property, null)
としており、ここでエラーとなります。
実際は上記メソッドの内部で呼ばれる、TagUtils.lookup("org.apache.struts.taglib.html.BEAN")にて、ActionFormWrapper
を取得しており、ActionFormWrapperは、取得できているのですが、ActionFormWrapperがラッピングしている
Action,ActionFormは、今現在表示しようとしている画面のものではなく、前の画面のActionFormをみてしまっています。
そのため、目的のFieldがないことにより、上記エラーが出てしまっています。
2回目以降(F5)にエラーがでないのは、TagUtils.lookup("org.apache.struts.taglib.html.BEAN")で返されるActionFormWrapper
が正しい遷移先の画面の物を参照しているためです。
正しくSessionに格納しているActionFormを切り替えるためにはどうしたらよいのでしょうか。


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


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