我正在将SpringBoot用于我的Web应用程序,我想将2个按钮绑定到2种不同的语言,但我不知道如何正确执行。
我试过这样做,但它没有用。
@RequestMapping("/language")
public class LanguageController {
@RequestMapping("esp")
public String setEsp(SessionLocaleResolver session)
{
Locale esp = new Locale("es_ES" );
session.setDefaultLocale(esp);
return "index";
}
@RequestMapping("eng")
public String setEng(SessionLocaleResolver session)
{
session.setDefaultLocale(Locale.ENGLISH);
return "index";
}
}
答案 0 :(得分:3)
您当前的设置中有多个错误:
SessionLocaleResolver
不支持的处理程序方法参数 - 因此当调用任何处理程序方法时,当前代码应该生成NullpointerException
。要访问SessionLocaleResolver
,您必须在Spring Boot Application.java
中进行设置。SessionLocaleResolver
自动连接到您的控制器后,您应该致电setLocale
而不是setDefaultLocale
,事情就应该开始了。Locale
是一个常见用例,因此Spring提供LocaleChangeInterceptor 消除了对自定义逻辑的需求并保持处理程序方法的清洁。 例如,如何在Spring Boot check this中设置它的代码。
答案 1 :(得分:1)
看一下LocaleChangeInterceptor(https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-localeresolver-interceptor)
如果启用,只需将url参数locale=...
添加到任何请求,然后将使用该区域设置。