0

JSFに以下のコードを入れるのはいつだろうと思いました。

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

私のフローはOne.jsfのようなものです->バッキングBeanと呼ばれるリンクをクリックすると->バッキングBeanからTwo.jsfに移動します

One.jsfのリクエストスコープにpatientIDを設定しています。バッキングBeanでアクセスできます。

今two.jsfで使用しています

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

値IDにアクセスできますが、

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

値IDにアクセスできません。HTMLページのソースでも値が表示されません....??

どうしてこれなの?

4

1 に答える 1

3

Request オブジェクトから、リクエスト パラメータ (GET リクエストで URL に渡されるパラメータ) とリクエスト属性 (リクエスト属性はリクエスト オブジェクトに格納される値であり、リクエストが完了するまでそこに存在します) の両方を取得できます。

#{requestScope['patientId]}'

request.get/setAttribute(...) に対応

#{param['patiendId']}

request.getParameter() に対応します (パラメーターは読み取り専用で設定できません)。

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

于 2012-04-10T12:35:45.730 に答える