有没有办法定义动态"名称"复合组件中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>
答案 0 :(得分:0)
您应该从bean获取文本并使用它初始化组件。
<my:inputText value="whatever" name="#{yourBean.getDynamicText()}" />
答案 1 :(得分:0)
解决方法是将“editableValueHolder”标记移动为“implementation”标记的子标记。似乎EL不会评估“interface”标签中的表达式。
感谢大家的帮助。