2012-03-16 8 views
11

Io uso <f:facet> per creare un'intestazione di tabella e voglio un simbolo accanto. Tuttavia, non sembra funzionare bene. Il simbolo non è reso.Come consentire a <f:facet> di contenere più componenti? Mostra solo il primo

JSF:

<h:column id="subject_column"> 
    <f:facet name="header"> 
    <h:commandLink value="Subject" id="sort_by_subjects" 
        action="#{xxx.sort}"> 
     <f:param id="sortBySubject" name="sortBy" value="SUBJECT"/> 
    </h:commandLink> 
    <span>${isAscending}</span> 
    </f:facet> 
    <h:outputText value="#{email.emailSubject}"/> 
</h:column> 

${isAscending} contiene il simbolo della freccia e rappresenta l'ordine. Vorrei mostrarlo accanto a <h:commandLink>.

risposta

21

Il <f:facet> può avere un solo figlio. Avvolgi più bambini in un <h:panelGroup>.

<h:column> 
    <f:facet name="header"> 
     <h:panelGroup> 
      <h:commandLink ... /> 
      <h:outputText ... /> 
     </h:panelGroup> 
    </f:facet> 
    ... 
</h:column> 
+0

Oh, sì. Circuito integrato. Molte grazie. –

+0

Prego. – BalusC

+0

Vorrei menzionare che almeno in Mojarra 2.2.5 non è così. Puoi avere più bambini in un 'f: facet', e Mojarra crea un involucro implicito' UIPanel' per loro. Questo va contro le specifiche JSF. –

0

Il <f:facet> può avere un solo figlio. Avvolgere in un <h:panelGroup> o <h:panelGrid>.

+0

solo suggerire un miglioramento di modifica (piccolo, molto piccolo) alla risposta accettata – Kukeltje

Problemi correlati