JSF 2复合组件editableValueHolder动态名称

时间:2014-03-27 09:13:51

标签: java jsf java-ee

有没有办法定义动态"名称"复合组件中editableValueHolder的属性。

e.g:

<composite:interface>
    <composite:attribute name="name" required="false" default="text"/>
    <composite:attribute name="value" required="false"/>
    <composite:editableValueHolder name="#{cc.attrs.name}" targets="textId"/>
</composite:interface>

<composite:implementation>
    <h:inputText id="textId" value="#{cc.attrs.value}" validatorMessage="Error"/>
</composite:implementation>

然后让页面使用我的标签,如:

<my:inputText value="whatever" name="testText">
    <f:validateLength for="testText" minimum="20"/>
</my:inputText>

2 个答案:

答案 0 :(得分:0)

您应该从bean获取文本并使用它初始化组件。

<my:inputText value="whatever" name="#{yourBean.getDynamicText()}" />

答案 1 :(得分:0)

解决方法是将“editableValueHolder”标记移动为“implementation”标记的子标记。似乎EL不会评估“interface”标签中的表达式。

感谢大家的帮助。