4

このプロジェクトの xhtml にすべてのプレゼンテーションを保持しようとしていますが、selectItem タグの一部の値をフォーマットする必要があり、BigDecimal 値を持ち、通貨のように見せる必要があります。タグの<f:convertNumber pattern="$#,##0.00"/>内側に適用する方法はありますか?<f:selectItem>

これを行う方法、またはこれをJavaコードにプッシュすることを伴わない回避策はありますか?

4

3 に答える 3

4

ここでさらに調査を行った後、現在の JSF の実装ではこれが不可能であると確信しています。価値を変える機会がありません。

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

tld は、itemLabelプロパティが でValueExpressionあり、本体の内容<f:selectItem>が空であることを示しています。したがって、これらのタグのいずれかの内部には何も存在できず、ラベルは Java モデルのそのままの値を指す必要があります。したがって、Javaモデルから出てくるフォーマットになっています。

于 2008-09-18T00:00:59.143 に答える
2

jsfの初心者である私は同様の問題を抱えていました。おそらく私の解決策は役に立ちますが、「jsf精神」ではないかもしれません

カスタムtaglibを作成し、クラスを拡張し(私の場合はorg.apache.myfaces.component.html.ext.HtmlCommandButton)、セッターをオーバーライドしてカスタムパラメーターを適用しました。

その代わりに、 私が望むのと同じくらい柔軟な を<t:commandButton/>使用しました。<mytags:commandButton/>

于 2008-09-18T00:17:36.763 に答える
0

そのパターンでコンバーターをセットアップすることもできますが、それはあなたが望むものとは正反対のように聞こえます.

于 2008-09-17T19:14:58.287 に答える