2012-04-10 15 views
0

JSFに以下のコードを貼り付けたのは不思議でした。Diffrence requestScopeとrequest.getParameter?

<h:inputHidden id="patientId" value="#{requestScope['patientId']}"/> 
<%=request.getParameter("patientId") %> 

私の流れがOne.jsfのようなものです - >リンクをクリックするとは、バッキングBeanと呼ばれる - >バッキングBeanのナビゲートから、私はOne.jsf上の要求スコープにpatientIDを設定しています

Two.jsfします。私はバッキングビーンにアクセスすることができます。私は私が私の価値-IDにアクセスすることはできません、私の価値-IDが、

<h:inputHidden id="patientId" value="#{requestScope['patientId']}"/> 

を使用してアクセスすることができます

<%=request.getParameter("patientId") %> 

を使用してtwo.jsfに今

。 htmlのページソースでさえ、私には価値があるとは見えません....?

なぜですか?

答えて

3

リクエストオブジェクトから、リクエストパラメータ(GETリクエストでURLに渡されるパラメータ)とリクエスト属性(リクエスト属性はリクエストオブジェクトに格納され、リクエストが完了するまでそこに保存されます)が得られます。

#{requestScope['patientId]}' 

#{param['patiendId']} 

はrequest.getParameter()(パラメータは読み取り専用され、設定することができない)に対応する/のsetAttribute(...)をrequest.getに相当します。

管理Beanが呼び出されたのと同じ要求に格納されているため、管理Beanの値にアクセスできます。リクエストが終了し、新しいページが開かれると、以前のリクエストに関連付けられているため、この値にアクセスできなくなります。

関連する問題