весенний перевод языка из контроллера - PullRequest
0 голосов
/ 05 марта 2019

Весной при интернализации я использую эту конфигурацию

@Bean
public LocaleResolver localeResolver() {
    //for this demo, we'll use a SessionLocaleResolver object
    //as the name implies, it stores locale info in the session
    SessionLocaleResolver resolver = new SessionLocaleResolver();

    //default to US locale
    resolver.setDefaultLocale(Locale.US);

    //get out
    return resolver;
}


/**
 * This interceptor allows visitors to change the locale on a per-request basis
 * @return a LocaleChangeInterceptor object
 */
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
    //instantiate the object with an empty constructor
    LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();

    //the request param that we'll use to determine the locale
    interceptor.setParamName("lang");

    //get out
    return interceptor;
}


/**
 * This is where we'll add the intercepter object
 * that handles internationalization
 */
@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(localeChangeInterceptor());
}

И я могу сменить язык с html т.е. скрипт и его нормально работающие

окна.location.replace ('? lang =' + selectedOption);

Но есть ли способ, которым я могу изменить его с контроллера, потому что предпочтительный язык будет храниться внутри БД

, поэтомуязык будет выбран и установлен

пример

u = ucr.findByNameContaining(name);
u.getLanguage 
<< i have to set language returned from above line >>

@RequestMapping(value = {"/welcome"}, method = RequestMethod.POST)
public String notificationChannelSearchPost(ModelMap model,HttpSession session
        ,@RequestParam(value="name", defaultValue="") String name) {


     u = ucr.findByNameContaining(name);
     u.getLanguage 
<< i have to set language returned from above line >>
    return "welcom.html";
}

спасибо

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете установить Spring Spring в Java вручную, выполнив что-то вроде этого

LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);             
localeResolver.setLocale(request, response,new Locale(u.getLanguage()));
...