[Seasar-user:11042] Re: [Teeda] doメソッドでnullを返す場合について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 10月 16日 (火) 23:00:10 JST


小林 (koichik) です.

Date:    Tue, 16 Oct 2007 22:27:58 +0900
From:    木村 究道 <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11039] [Teeda] doメソッドでnullを返す場合について

> doメソッドでnullを返すのはどのような場合なのでしょうか?

画面遷移せずに,自画面を表示する場合です.

> 自画面に戻すような処理がある場合にnullを指定するのだと
> 思いますが、nullの場合はPRGパターンなっていないようです
> ので、PRGパターンでない方が良い場合があるのだろうと思う
> のですが、それがどのような場合なのか見極めたいと思い質
> 問させていただています。

PRG パターンを利用するメリットの一つは,ブラウザに
表示される URL とその時表示されているページが
ずれないことです.
Teeda のようなページモデルで PRG パターンを
使わない場合,URL は現在表示しているページではなく,
その前のページのものになって見えます.

PRG を使うとそのズレが無くなるのですが,
同一画面を表示する際は URL が変わらないので,
この理由で PRG を使う必要はありません.
逆に PRG を使わない方が,リクエストが少なくて済む,
セッションに引継ぎのための情報を持たなくて済む,
などのメリットがあるので,同一画面を表示する際は
リダイレクトしないでそのまま画面を描画するように
なっています.

同一画面を表示する場合でも,自分のクラスを
返せばリダイレクトになります.

public class HogePage {
  public Class doFoo() {
    return null; // リダイレクトしない
  }
  public Class doBar() {
    return HogePage.class; // リダイレクトする
  }
}


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




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