0

我想知道何时将以下代码放入我的 JSF 中。

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

我的流程就像 One.jsf --> 单击名为 backing Bean 的链接 --> 从 backing bean 导航到 Two.jsf

我在 One.jsf 的请求范围内设置了 patientID。我可以在支持 bean 上访问它。

现在在 two.jsf 上使用

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

我可以访问我的值 ID,但使用

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

我无法访问我的 value-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 回答