[Seasar-user:9843] Re: [teeda] 画面遷移に伴うxxxItemsプロパティの引継ぎについて
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2007年 8月 13日 (月) 10:29:03 JST
ひがです。
>
> 坂口と申します。
> お世話になっております。
>
> 題記、画面遷移時のItemsプロパティの引継ぎについて確認したく質問させていただ
きます。
>
> 当方、画面遷移時のItemsプロパティの引継ぎとhtmlファイルのxxxItemsSaveの関係
を調査する為、
> 以下のようなアプリケーションを作成しました。
>
> ★画面
> 1. 検索画面
> 2. 検索結果画面(1.とは異なるHTMLを使用)
>
> ★アプリケーションの作り
> 検索画面で検索条件を設定し、対応するPageクラスにxxxItemsプロパティを用意し検
索結果を格納。
> 検索結果画面に対応するPageクラスにもxxxItemsプロパティを用意しておく。
> 検索画面ではxxxItemsプロパティ値の表示は行わず、検索結果画面で表示するように
する。
> (検索画面、検索結果画面に同一検索条件プロパティを用意し、検索結果画面の
prerenderメソッドで
> xxxItemsプロパティ値をセットする処理も可能ですが、今回はxxxItemsプロパティ
を両画面で用意し使用する)
>
> ★画面遷移方法
> 画面遷移方法として、以下3つの方法を実施。
> 画面遷移方法によってはxxxItemsプロパティの値を引き継げたり、引き継げなかった
りします。
>
> 1. 『検索遷移ボタンを使用。(id="doxxx"のサブミットボタン、対応メソッドの戻り
値は検索結果画面)』
> 検索遷移ボタン押下時に、検索遷移ボタンに対応するメソッド内でxxxItemsプロ
パティ値格納と検索結果画面への遷移を行う。
> ⇒ 検索結果画面でxxxItemsプロパティ値の表示可能。
> (検索結果画面のprerenderメソッド内でxxxItemsプロパティ値は検索画面
の値がセットされている)
>
> 2. 『検索ボタン(id="doxxx"のサブミットボタン、対応メソッドの戻り値はnull)、
画面遷移ボタン(id="doxxx"のサブミットボタン、対応メソッドの戻り
値は検索結果画
面)を使用。』
> 検索ボタン押下時、検索ボタンに対応するメソッド内でxxxItemsプロパティ値格
納。
> 画面遷移ボタンを用意し、画面遷移ボタンで検索結果画面へ遷移。
> ⇒ 検索結果画面でxxxItemsプロパティ値の表示不可。
> (検索結果画面のprerenderメソッド内でxxxItemsプロパティ値は検索画面
の値がセットされてない)
>
> 3. 『検索ボタン(id="doxxx"のサブミットボタン、対応メソッドの戻り値はnull)、
画面遷移リンク(id="doxxx"のリンク、遷移先は検索結果画面)を使用。』
> 検索ボタン押下時、検索ボタンに対応するメソッド内でxxxItemsプロパティ値格
納。
> 画面遷移リンクを用意し、リンク選択で検索結果画面へ遷移。
> ⇒ 検索結果確認画面でxxxItemsプロパティの表示不可。
> (検索結果画面のprerenderメソッド内でxxxItemsプロパティ値は検索画面
の値がセットされてない)
>
> 以上のように、画面遷移方法が異なるとxxxItemsプロパティが引き継げたり、引き継
げなかったりするのですが、xxxItemsプロパティ値の引継ぎは
> どのように行うのが正しいのでしょうか?
なにが正しいかは一概に言えませんが、Teedaが想定している方法は、
結果画面には、goXxxで遷移し、
結果画面のinitialize()でxxxItemsを取得し、
結果画面のhtmlでhiddenでxxxItemsSaveを使うことです。
理由は、結果画面用の処理は、結果画面で行ったほうが良いからです。
下記三つを理解しておけば、困ることはないと思います。
Teedaのページクラスは、リクエストスコープなので、
リクエストが終わればすべて消える。
同一ページに戻るときには、hiddenや入力系のタグで
状態を維持する必要がある。
ボタンで別のページに移動する場合は、同一のプロパティは
自動的に引き継がれる。
--
Yasuo Higa
[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内