質問

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

これを行う方法、またはこれを Java コードにプッシュする以外の回避策はありますか?

役に立ちましたか?

解決

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

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

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

他のヒント

JSF の初心者である私も同様の問題を抱えていました。私の解決策は役立つかもしれませんが、「JSF の精神」に基づいていないかもしれません。

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

だから代わりに <t:commandButton/> 私が使った <mytags:commandButton/>, 、それは私が望むのと同じくらい柔軟です。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top