【问题标题】:What does <f:facet> do and when should I use it?<f:facet> 有什么作用,我应该什么时候使用它?
【发布时间】:2014-09-29 12:11:24
【问题描述】:

我在使用标签 &lt;f:facet&gt; 时遇到了问题。我正在编写使用它的其他代码示例,但我不确定它的确切用途。

我已经编写了一些代码,这些代码在方法上与我看到的其他代码完全相同,除了包含在&lt;f:facet name=actions&gt; 标记中。当我在我的代码周围添加它时,我包裹它的下拉框会在我部署时消失。任何人都可以提出原因或让我了解如何以及何时使用 facet?

这是我的代码,我不会费心添加 bean 代码,因为它们只是基本的 getter 和 setter,我认为它们不会造成麻烦。

<f:facet name="actions">
    <p:selectOneMenu id="SwitchWeekDrpDwnMenu" 
                     value="#{depotWorkloadBean.selectView}"
                     partialSubmit="true">
        <p:ajax update="mainForm" 
                listener="#{depotWorkloadBean.updateView}" />
        <f:selectItem itemLabel="Day view" itemValue="Day"/>
        <f:selectItem itemLabel="01/01/2014" itemValue="Week"/>
    </p:selectOneMenu>
</f:facet>

如果我删除了 facet 标记,下拉框会显示,但它不会像 bean 一样发挥作用。

【问题讨论】:

  • 分面的容器是什么?如果它所在的容器不支持具有该名称的构面,则该构面本身是无用的。因此,您的标题(问题)与您的问题不太相关。你觉得答案是你需要的,那么请采纳

标签: jsf primefaces xhtml facet


【解决方案1】:

构面表示容器组件中的命名部分。例如,您可以为 dataTable 组件创建页眉和页脚分面。 https://web.archive.org/web/20170828020413/http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_facet.html

当您想要创建使用来自用户的某些代码的组件(比如包装器)时,它很有用。

即。当您要创建隐藏长文本并显示其短版本的组件时。你可以只使用元素体,但是你只会得到一个值,如果你想从用户那里得到短版本和长版本,那么你不能在一个值中做到这一点(不使用一些判别式),只需使用 facet 和说哪个是长版,哪个是短版。

<textShortener>
    <f:facet name="short">
        This text is short.
    </f:facet>
    <f:facet name="long">
        This text is too <b>long</b> to be showed when page loads. User have to click the button after the short text to show this.
    </f:facet>
</textShortener>

是的,这可以(并且应该)使用 jsf 模板来完成,但我希望你明白了。

质疑:你只是在狂野的 xml 中定义了 facet,没有人请求它,所以没有人处理它 - 这就是它没有抛出错误也没有显示任何内容的原因。

【讨论】:

  • 为什么像 h:column 这样的组件需要一个包装器?请也解释一下。
  • 在链接的例子中,使用是显而易见的。您在 facet 中获得标题,然后 h:column 的子项(例如它是 h:outputText)是列的真实内容。你需要区分它们。 (如果标题只是纯文本,那么你可以使用 h:column 的参数,但是你在定义 css 和其他东西时遇到问题......)
  • 您在哪里看到语法错误以及为什么您认为这个示例不好?
猜你喜欢
  • 2011-02-21
  • 2012-06-02
  • 2012-06-18
  • 1970-01-01
  • 2011-01-18
  • 2011-08-18
  • 2017-03-21
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多