2011-10-18 18 views
0

私はJSF 1.2を使用しています。私はボタン付きのページを持っています。ボタンにフックされたアクションは、リクエスト属性をリクエストオブジェクトに追加し、page2にナビゲートします。ページ2では、#{requestScope.attr}でその属性を取得しようとしています。しかし、これは機能しません。なぜどんなアイデア?JSFリクエスト属性

Thx。

答えて

1

ページ2は、別のHTTPリクエストによって要求されたようです。アクションメソッドが終了したときに、転送の代わりにリダイレクトを送信した場合に起こります。たとえば、アクションメソッドでExternalContext#redirect()を呼び出すか、<redirect />をナビゲーションケースに追加します。リダイレクトは、基本的にブラウザに新しいHTTPリクエストを作成するよう指示します。

つまり、すでにJSFを使用している場合は、リクエスト属性を明示的に設定することがどのように役立つのだろうかと思います。目的のデータを現在のBeanのプロパティとして割り当てるだけです(これはスコープを要求すると仮定しています)。

private String foo; // +getter 

public String submit() { 
    foo = "some value"; 
    return "nextpage"; 
} 

この方法では、次のページの#{bean.foo}から利用できます。

<h:outputText value="The value is: #{bean.foo}" /> 
関連する問題