[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 メーリングリストの案内