【发布时间】:2018-12-05 00:55:51
【问题描述】:
这是我第一次使用弹簧靴和百里香。我的申请有 2 页。包含所有汽车的页面和特定汽车的配置页面。
在我的标题中,我有一个可以更改语言的选择框。这出现在两个页面上。当我更改语言时,我会得到一个更改语言的 localeResolver。我得到了 2 种语言的 2 个 message.properties 文件。
例如,如果我选择英语,则页面将使用英语重新加载。然后当我点击一辆车去那个特定的汽车配置页面时,它仍然记得使用什么语言。但是在配置页面上,您也可以在标题中更改语言。如果我点击例如荷兰语,它也可以工作。
但是,如果我转到上一页,它仍然有带有 localhost:9000/locale?lang=en_GB 而不是 localhost:9000/locale?lang=nl_NL 的旧网址。
当我从控制器返回视图时,我希望它使用语言返回它。
这是我的 webMvcConfig
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
registry.addInterceptor(new ThymeLeafLayoutInterceptor());
}
@Bean
public LocaleResolver localeResolver(){
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.US);
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
这是我的控制器,它返回视图 search.html
@RequestMapping(method = RequestMethod.GET)
public String search() {
return "search";
}
如何返回带有语言参数的视图。比如:localhost:9000/locale?lang=en_GB
【问题讨论】:
标签: java spring spring-boot internationalization thymeleaf