Primefaces outputLabel für zusammengesetzte Komponenten

Ich habe ein Problem mit der Verwendungp:outputLabel bei Verwendung mit Verbundbauteilen. Ich habe zusammengesetzte Komponente mitp:inputText Feld (Ich habe irrelevante Teile aus der Komponente entfernt):

<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>

Jetzt verwende ich diese Komponente nicht mehr mitp:outputLabel:

<p:outputLabel for="myComponent:myInput" value="#{resources['myLabel']}:"/>
<my:myComponent id="myComponent" required="#{myBean.required}"/>

Alles funktioniert einwandfrei, erforderliche Validierung, Meldung wird ebenfalls angezeigt, aber es gibt keine* sign on label, wie es gibt, wenn ich label direkt mit verbindep:inputText Komponente. Wenn ich dagegen hardcoderequired="true" aufp:inputText alles funktioniert gut

Ich habe durchgetestetorg.primefaces.component.outputlabel.OutputLabelRenderer und entdeckte, dass Komponente als erkannt wirdUIInput, aberinput.isRequired() gibt false zurück. Beim weiteren Debuggen wurde dies festgestelltrequired Das Attribut ist für die Komponente noch nicht definiert, daher wird es zurückgegebenfalse als Standardwert iUIInput:

(Boolean) getStateHelper().eval(PropertyKeys.required, false);

Auch wenn ich mich gerade bewegep:outputLabel im verbundbauteil funktioniert alles einwandfrei. Wie wird EL später im Verbundbauteil ausgewertet?

Ich verwende Primefaces 3.5 mit Mojarra 2.1.14

Antworten auf die Frage(1)

Ihre Antwort auf die Frage