Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 在复合组件中装饰标准组件时,如何继承属性?_Jsf_Jsf 2_Facelets_Composite Component - Fatal编程技术网

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?我只是好奇而已。