0

RequestFactory가 jsr303 유효성 검사기를 사용하여 도메인 객체의 유효성을 검사하면 지역화 된 contraint 위반 메시지와 메시지 키를 가져옵니다. 코드를 디버깅하고 클라이언트 측에서 사용되는 로케일에 관계없이 서버 측에서 기본 로케일이 사용됩니다. 페이로 드에서 로캘 설정을 찾지 못했습니다.GWT RequestFactory를 사용하는 JSR303 지역화 메시지

RequestFactory 및 BeanValidation을 사용하여 현지화를 처리하는 방법에 대한 예가 있습니까? 메시지를 클라이언트 또는 서버 측에서 변환해야합니까? 모범 사례는 무엇입니까?

감사합니다.

답변

3

나는이 문제에 대한 청색 인쇄물을 찾지 못했고, 그래서 나는 내 자신의 기계 장치를 구현했다. 헤더에 속성으로 현재 선택된 언어를 추가했고 서버 측에서 헤더에서 언어를 읽었습니다.

클라이언트 측 :

MyRequestFactory factory = GWT.create(MyRequestFactory.class); 
factory.initialize(new SimpleEventBus(), new DefaultRequestTransport() { 

    @Override 
    protected void configureRequestBuilder(RequestBuilder builder) { 
     super.configureRequestBuilder(builder); 
     builder.setHeader("X-GWT-Language", 
      LocaleInfo.getCurrentLocale().getLocaleName()); 
    } 
}); 

서버 측 (Grails의)

def index = { 
    String gwtLanguage = request.getHeader("X-GWT-Language") 
    if(gwtLanguage){ 
     Locale gwtLocale = new Locale(gwtLanguage) 
     RequestContextUtils.getLocaleResolver(request).setLocale(request, response, gwtLocale) 
    } 
    // ... Handle the RequestFactory request