1

我们是否总是需要向 URL 传递参数来检索它们?

在我的示例中,我无法检索名为“study”的参数;我该怎么做?

XHTML 文件发送器:

<h:commandButton  value="Send" type="button" action="pretty:participant">
    <f:param  name="study"  value ="test"  />
</h:commandButton> 

XHTML 文件接收器:

<h:outputFormat value="Print : {0} ">
   <f:param value="#{study}" />      
</h:outputFormat>

漂亮的配置 XML:

<url-mapping id="participant">
    <pattern value="/Participant/New/" />
    <view-id value="/addParticipant.xhtml" />
</url-mapping>
4

2 回答 2

1

是的,您必须将参数存储在 URL 中的某个位置以便稍后检索它。您可以使用路径参数查询参数来执行此操作。通常,您使用映射将参数绑定到 bean 属性。这样,您可以使用引用您的 bean 属性的标准 EL 表达式检索页面中的值。

于 2013-10-21T15:06:24.017 回答
1

如果你想使用漂亮的面孔,是的,你必须这样做,因为它是一个 url 重写工具,所以参数必须进入 url。为了使您的代码正常工作,您应该f:viewParam在接收器页面中使用它之前使用它:

<f:metadata>
    <f:viewParam name="study" value="#{destinationBean.study}" />
</f:metadata>

<h:outputFormat value="Print : {0} ">
   <f:param value="#{destinationBean.study}" />      
</h:outputFormat>

但是,如果您想摆脱通过 url 发送参数,您可以使用flash 范围作为替代方案。然而,这涉及 JSF 而不是 Prettyfaces。如果您想使用此解决方案,我强烈建议您避免使用 Mojarra JSF 2.x 的早期版本,因为它们与此有关。

于 2013-10-21T15:06:37.630 回答