2

我正在创建一个简单的 Web 应用程序来尝试使用 PrimeFaces 的 JSF2,到目前为止,它开箱即用的功能给我留下了深刻的印象。通过各种教程和文章,我对模板中的属性以及是否可以插入这些属性有疑问。

我知道我可以在模板中插入大量 HTML 内容,例如:

<title>
  <ui:insert name="title">Default Title</ui:insert>
</title>

但在某些情况下,在属性级别插入会很有用。我想到的具体一个是 TabMenu,如果您使用 TabMenu 进行导航(并且您希望每个页面上都使用相同的 TabMenu,因此使用模板很有意义),您可能希望根据不同设置“activeIndex”您正在查看的页面。然而,这似乎不适用于模板文件:

<p:tabMenu <ui:insert name="activeIndex">activeIndex="0"</ui:insert>>
  <p:menuitem value="Overview" outcome="main" icon="ui-icon-star"/>
  <p:menuitem value="Demos" outcome="demos" icon="ui-icon-search" />
  <p:menuitem value="Documentation" outcome="docs" icon="ui-icon-document"/>
</p:tabMenu>

希望这是有道理的。有没有办法做到这一点,或者这个设计完全错误并且有更好的方法来做到这一点?

4

1 回答 1

3

将其作为<ui:param>.

例如在模板客户端中:

<ui:composition template="/WEB-INF/templates/some.xhtml">
    <ui:param name="activeIndex" value="0" />

    ...
</ui:composition>

在主模板中:

<p:tabMenu activeIndex="#{activeIndex}">
于 2012-10-31T18:56:19.470 回答