복붙노트

[SPRING] 스프링에서 @NumberFormat에 다른 로케일 사용

SPRING

스프링에서 @NumberFormat에 다른 로케일 사용

Spring 3 프로젝트를 진행 중이며 터키 통화의 Long 필드를 형식화해야합니다. 응용 프로그램의 기본 로캘은 en_US입니다. 다음과 같이 @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. ==============================

    1.여러 가지 방법이 있지만 예를 들어 AnnotationFormatterFactory 의 사용자 정의 구현을 Bean으로 등록하여 형식을 수동으로 처리 할 수 ​​있습니다. 이것은 스프링 문서 섹션 6.6에 문서화되어 있습니다. 문서의 예제는 @NumberFormat의 동작을 조정하는 사용 사례도 처리합니다.

    여러 가지 방법이 있지만 예를 들어 AnnotationFormatterFactory 의 사용자 정의 구현을 Bean으로 등록하여 형식을 수동으로 처리 할 수 ​​있습니다. 이것은 스프링 문서 섹션 6.6에 문서화되어 있습니다. 문서의 예제는 @NumberFormat의 동작을 조정하는 사용 사례도 처리합니다.

  2. from https://stackoverflow.com/questions/21091086/use-different-locale-for-numberformat-in-spring by cc-by-sa and MIT license