Jsf 在复合组件中装饰标准组件时,如何继承属性?
我想知道是否有一个很好的方法来装饰组件与复合组件 例如:Jsf 在复合组件中装饰标准组件时,如何继承属性?,jsf,jsf-2,facelets,composite-component,Jsf,Jsf 2,Facelets,Composite Component,我想知道是否有一个很好的方法来装饰组件与复合组件 例如: <composite:implementation> <div style="someFancyClass"> <h:inputText value="#{cc.attrs.value}" /> </div> </composite:implementation> 在这种情况下,value属性被传递到包含的。但是其他所有属性呢?我是否必须在部
<composite:implementation>
<div style="someFancyClass">
<h:inputText value="#{cc.attrs.value}" />
</div>
</composite:implementation>
在这种情况下,value属性被传递到包含的
。但是其他所有属性呢?我是否必须在
部分声明所有这些内容
最好是从标准组件继承某种类型的内容,例如,
的maxlength属性在复合组件中自动可用
我是否必须在
部分声明所有这些内容
没有必要,您只需使用maxlength=“#{cc.attrs.maxlength}”
,而无需将其声明为
。然而,这不利于记录目的。开发人员不会在复合组件的文档中看到该属性(例如,IDE自动完成可能会使用该文档)
最好是从标准组件继承某种类型的内容,例如,
的maxlength属性在复合组件中自动可用
那是不可能的。为此,您确实需要创建一个完全值得定制的UIInput
组件和/或渲染器
(在您的特定情况下,只需渲染器就足够了)
我是否必须在
部分声明所有这些内容
没有必要,您只需使用maxlength=“#{cc.attrs.maxlength}”
,而无需将其声明为
。然而,这不利于记录目的。开发人员不会在复合组件的文档中看到该属性(例如,IDE自动完成可能会使用该文档)
最好是从标准组件继承某种类型的内容,例如,
的maxlength属性在复合组件中自动可用
那是不可能的。为此,您确实需要创建一个完全值得定制的
UIInput
组件和/或渲染器
(在您的特定情况下,仅渲染器就足够了)。我在这里提供了一个关于如何装饰复合组件的示例
但是,这并没有提供真正的继承,而是一种在一组相似的复合组件之间共享公共内容的方法。我在这里提供了一个如何装饰复合组件的示例
然而,这并没有提供真正的继承,而是一种在一组类似的复合组件之间共享公共内容的方法。Thx对于答案,您是对的,在上面所示的简单情况下,渲染器是合适的。但是如果我必须在backing类中这样做,我可以将元素从attributes映射复制到嵌套类的属性,对吗?哪种方法是正确的?decode()还是组件应该响应postAddToViewEvent?我只是好奇而已。Thx的答案是,你是对的,在上面所示的简单情况下,渲染器是合适的。但是如果我必须在backing类中这样做,我可以将元素从attributes映射复制到嵌套类的属性,对吗?哪种方法是正确的?decode()还是组件应该响应postAddToViewEvent?我只是好奇而已。