2008-09-17 7 views
4

Der Versuch, alle Präsentation Zeug in der XHTML auf diesem Projekt zu halten und ich muss einige Werte in einem selectItem-Tag formatieren einen BigDecimal-Wert und muss es wie Währung aussehen. Gibt es trotzdem eine <f:convertNumber pattern="$#,##0.00"/> Innerhalb eines <f:selectItem> Tags?JSF selectItem Etikettenformatierung

Jeder Weg, um dies zu tun oder eine Arbeit, die nicht bedeutet dies in den Java-Code schieben?

Antwort

4

Nachdem ich hier einige Nachforschungen angestellt habe, bin ich ziemlich überzeugt, dass dies mit der derzeitigen Implementierung von JSF nicht möglich ist. Es gibt einfach keine Gelegenheit, den Wert zu verändern.

http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html

Die TLD zeigt die itemLabel Eigenschaft als ein ValueExpression und der Körpergehalt von <f:selectItem> als leer zu sein. Innerhalb eines dieser Tags darf also nichts existieren und das Label muss im Java-Modell auf einen wörtlichen Wert verweisen. Es muss also aus dem Java-Modell heraus formatiert werden.

+0

traurig aber wahr. Ich habe gerade das gleiche Problem. –

+0

wieder. Ich bemerkte gerade, dass ich schon vor Monaten auf genau diese Frage geantwortet hatte. SO wird zu meinem persönlichen Notizblock. –

0

Sie könnten einen Konverter mit diesem Muster einrichten, aber das klingt genau das Gegenteil zu dem, was Sie wollen.

1

einen Anfänger zu JSF war hatte ich ein ähnliches Problem, vielleicht meine Lösung hilfreich, vielleicht ist es nicht in dem „JSF Geist“

ich nur eine benutzerdefinierte taglib erstellt und erweiterte die Klasse (in meinem Fall org. apache.myfaces.component.html.ext.HtmlCommandButton) und setzte die Setter außer Kraft, um benutzerdefinierte Parameter anzuwenden.

so statt <t:commandButton/> ich <mytags:commandButton/> verwendet, die so flexibel ist, wie ich will.

+0

Das ist eigentlich komplett im JSF-Sprint. Ich versuche, so wenig Code wie möglich von JSF zu schreiben. Meistens nur ein hohes Design-Ziele, aber ich denke, es macht unser Projekt klarer, wartungsfreundlicher usw. – William