【问题标题】:JSF custom tag wrapper dynamic parametersJSF 自定义标签包装器动态参数
【发布时间】:2012-04-24 09:53:44
【问题描述】:

我正在尝试创建一个自定义标签,该标签将充当标准组件的包装器,并将定义一些常见属性的值

例如,自定义标签将如下所示

<ui:component xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core">

   <rich:datascroller fastControls="false" fastStep="false" maxPages="20" id="#{value}"/>

</ui:component>

然后每次我需要像这样的数据滚动组件时,我都可以使用这个标签

<my:dataTable id="componentId"/>

我的问题是我是否可以为我的自定义标签提供属性,这些属性将被“转移”到 jsf 组件,而无需明确指定每个属性。例如考虑以下使用我的自定义组件

<my:dataTable id="componentId" pagesVar="books" stepControls="true"/>

还有这个

<my:dataTable id="componentId" pagesVar="items" renderIfSinglePage="false"/>

属性 pagesVar、stepControls、renderIfSinglePage 应该被传递给 rich:datascroller 组件。我知道我可以做这样的事情

<rich:datascroller pagesVar=#{pagesVar ? pagesVar : ''} stepControls=#{stepControls ? true: false}/>

但我想知道是否有一种方法可以在不指定每个属性的情况下传递所有属性

【问题讨论】:

    标签: jsf richfaces custom-tag


    【解决方案1】:

    但我想知道是否有一种方法可以在不指定每个属性的情况下传递所有属性

    不,标签属性不支持任何形式的继承。

    但是,您可以进一步简化您的特定示例。

    <rich:datascroller pagesVar="#{pagesVar}" stepControls="#{stepControls}" />
    

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 2014-06-15
      相关资源
      最近更新 更多