2014-01-13 1 views
5

私はSpring 3プロジェクトに取り組んでおり、トルコの通貨のためにLongフィールドをフォーマットする必要があります。アプリケーションのデフォルトLocaleen_USです。私は以下のように@NumberFormat注釈を使用:Springの@NumberFormatに異なるロケールを使用する

@NumberFormat(style=NumberFormat.Style.CURRENCY) 
public Long getBudgetLimit() { 
    return budgetLimit; 
} 

注釈作品を英語ロケールでフォームフィールドをフォーマットします。しかし、私はこの分野にトルコ語のロケールを使用する必要があります。アプリケーションのロケールとは異なる単一のフィールドまたはページのロケールを設定する方法はありますか?

:私はちょうど答えを見つけました。以下のようにコントローラでカスタム・エディタを使用します。

NumberFormat numberFormat = NumberFormat.getNumberInstance(new Locale("tr","TR")); 
dataBinder.registerCustomEditor(Long.class, new CustomNumberEditor(Long.class,numberFormat, true)); 

@NumberFormatアノテーションを使用しないでください。同じ理由で、それは私のために誤りを与えた。

答えて

1

さまざまな方法がありますが、たとえば、AnnotationFormatterFactory<NumberFormat>のカスタム実装をBeanとして登録すると、手動で書式設定を処理できます。これはdocumentented in the Spring documentation section 6.6です。ドキュメントの例では、@NumberFormatの動作を調整するユースケースも扱っています。

+0

ありがとうございます、ありがとうございます、ありがとうございます、これはより包括的で集中的です(アプリケーション全体で@ NumberFormatの動作を変更する)ソリューションです。 –

関連する問題