2010-12-28 4 views
2

これは動作します:JSF 2:ELでこれを行うことができますか?

<h:outputText value="Active Locale : " /> 
#{view.locale} 

しかし、どのように私はELでこのような何かを達成することができますか?

<h:outputText value="Active Locale Decimal Separator : " /> 
#{new DecimalFormat(view.locale).decimalFormatSymbols.groupingSeparator} 

答えて

4

正確にはgroupingSeparatorとは何ですか?

標準java.text.DecimalFormatは、getGroupingSeparatorでもgroupingSeparatorフィールドもメソッドもありません。だから私はあなたが実際に達成しようとしている暗闇の中で少しです。 _を印刷しますか?したがって、ローカルがen_ukの場合、結果は "_"ですか?

正確に何を望んでいても、自分自身でELファンクションを構築することで、すべてを行うことができます。 ELでは、それは次のようになります。

#{my:someFormatting(view.locale)} 

someFormattingが、あなたはその後、独自の名前空間を割り当てる静的Javaメソッドとして実装されている(「私の」この場合)。必要な場合は、これを手助けするためのチュートリアルを参照してください。

また、Faceletsで利用できる標準EL関数もいくつかあります。これらは、次の名前空間で定義されたJSTL関数です:

xmlns:fn="http://java.sun.com/jsp/jstl/functions" 

あなたは正確に彼らは同様にいくつかの助けになることも必要なものに応じて。

+0

申し訳ございませんが、Javaの場合は次のようになります。新しいDecimalFormat(myLocale).getDecimalFormatSymbols()。getGroupingSeparator();これは、ロケールに応じて、ドット文字やカンマ文字などの数値または通貨グループの区切り文字を取得することです。入力いただきありがとうございます。つまり、管理Beanから取得するか、カスタムEL関数を使用する必要があります。良い一日を ! – bertie

+1

JSTL関数ライブラリの正しい名前空間URIは、実際にはhttp:// java.sun.com/jsp/jstl/functions'です( ' jsp/')。 – Mac

関連する問題