Primefaces outputLabel para componente compuesto
Tengo un problema con el usop:outputLabel
cuando se utiliza con componente compuesto. Tengo componente compuesto conp:inputText
campo (quité partes irrelevantes del componente):
<cc:interface>
<cc:editableValueHolder name="myInput" targets="myInput"/>
<cc:attribute name="required" required="true" type="java.lang.Boolean" default="false"/>
</cc:interface>
<cc:implementation>
<p:inputText id="myInput" required="#{cc.attrs.required}"/>
</cc:implementation>
Ahora, no uso este componente conp:outputLabel
:
<p:outputLabel for="myComponent:myInput" value="#{resources['myLabel']}:"/>
<my:myComponent id="myComponent" required="#{myBean.required}"/>
Todo funciona bien, se requiere validación, el mensaje también se muestra, pero no hay*
Firmar en la etiqueta, ya que hay cuando conecto la etiqueta directamente ap:inputText
componente. Si yo, por otra parte, hardcoderequired="true"
enp:inputText
todo funciona bien
He depurado a travésorg.primefaces.component.outputlabel.OutputLabelRenderer
y descubrió que el componente es reconocido comoUIInput
, peroinput.isRequired()
devuelve falso. Más lejos la depuración descubrió querequired
atributo aún no está definido en el componente, por lo que devuelvefalse
como valor predeterminado iUIInput
:
(Boolean) getStateHelper().eval(PropertyKeys.required, false);
Además, si solo me muevop:outputLabel
Dentro del componente compuesto todo funciona bien. ¿Como se evalúa el EL más adelante dentro del componente compuesto?
Estoy usando Primefaces 3.5 con Mojarra 2.1.14