Formattazione dell'etichetta JSF selectItem
Domanda
Sto cercando di mantenere tutto il materiale di presentazione nell'xhtml di questo progetto e ho bisogno di formattare alcuni valori in un tag selectItem che abbia un valore BigDecimal e debba farlo sembrare una valuta.C'è comunque da applicare a <f:convertNumber pattern="$#,##0.00"/>
All'interno di un <f:selectItem>
etichetta?
Un modo per farlo o una soluzione che non implichi l'inserimento di questo nel codice Java?
Soluzione
Dopo aver effettuato ulteriori ricerche qui, sono abbastanza convinto che ciò non sia possibile con l'attuale implementazione di JSF.Semplicemente non c'è l'opportunità di trasformare il valore.
http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html
Il tld mostra il itemLabel
proprietà come a ValueExpression
e il contenuto corporeo di <f:selectItem>
come vuoto.Quindi non è consentito che esista nulla all'interno di uno di questi tag e l'etichetta deve puntare a un valore letterale nel modello Java.Quindi deve essere formattato uscendo dal modello Java.
Altri suggerimenti
essendo un principiante di jsf ho avuto un problema simile, forse la mia soluzione è utile, forse non è nello "spirito jsf"
ho appena creato una taglib personalizzata ed esteso la classe (nel mio caso org.apache.myfaces.component.html.ext.HtmlCommandButton) e ho sovrascritto i setter per applicare parametri personalizzati.
quindi invece di <t:commandButton/>
ero solito <mytags:commandButton/>
, che è flessibile quanto voglio.
Potresti impostare un convertitore con quel modello, ma sembra esattamente l'opposto di quello che desideri.