设置语言 springMVC/Thymeleaf
Set language springMVC/Thymeleaf
我正在使用 Spring MVC 和具有 Java 配置的 Thymeleaf 开发一个网络应用程序。在 html
页面的模板中,通过以下代码将语言设置为瑞典语:
<html lang="sv">
并通过此元标记将编码设置为 UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
但由于某些原因,不会显示瑞典字母。
我尝试将 <html>
标签更改为 XHTML 版本 xml:lang="en"
,但没有任何区别。
因为我对 Spring 和 Thymeleaf 还是很陌生,所以我不知道哪里出了问题,或者 language/charset 应该是 stated/set 所以我给你 thymeleaf 配置代码和页面控制器:
@Configuration
public class ThymeleafConfig {
@Bean
public ServletContextTemplateResolver templateResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(1);
resolver.setCacheable(false);
return resolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
return engine;
}
@Bean
public ThymeleafViewResolver thymeleafViewResolver() {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
return resolver;
}
}
控制器:
@Controller
public class IndexController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index() {
ModelAndView model = new ModelAndView();
model.setViewName("index");
return model;
}
}
将以下行添加到 ThymeleafConfig
中的 templateResolver
:
resolver.setCharacterEncoding("UTF-8");
如 docs setCharacterEncoding
中所述:
Specifies the character encoding to be set into the response when the
view is rendered.
只有当 属性 characterEncoding
被添加到 ServletContextTemplateResolver
和 ThymeleafViewResolver
时我才得到正确的编码。
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
...
<property name="characterEncoding" value="UTF-8"/>
</bean>
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
...
<property name="characterEncoding" value="UTF-8"/>
</bean>
我正在使用 Spring MVC 和具有 Java 配置的 Thymeleaf 开发一个网络应用程序。在 html
页面的模板中,通过以下代码将语言设置为瑞典语:
<html lang="sv">
并通过此元标记将编码设置为 UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
但由于某些原因,不会显示瑞典字母。
我尝试将 <html>
标签更改为 XHTML 版本 xml:lang="en"
,但没有任何区别。
因为我对 Spring 和 Thymeleaf 还是很陌生,所以我不知道哪里出了问题,或者 language/charset 应该是 stated/set 所以我给你 thymeleaf 配置代码和页面控制器:
@Configuration
public class ThymeleafConfig {
@Bean
public ServletContextTemplateResolver templateResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(1);
resolver.setCacheable(false);
return resolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
return engine;
}
@Bean
public ThymeleafViewResolver thymeleafViewResolver() {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
return resolver;
}
}
控制器:
@Controller
public class IndexController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index() {
ModelAndView model = new ModelAndView();
model.setViewName("index");
return model;
}
}
将以下行添加到 ThymeleafConfig
中的 templateResolver
:
resolver.setCharacterEncoding("UTF-8");
如 docs setCharacterEncoding
中所述:
Specifies the character encoding to be set into the response when the view is rendered.
只有当 属性 characterEncoding
被添加到 ServletContextTemplateResolver
和 ThymeleafViewResolver
时我才得到正确的编码。
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
...
<property name="characterEncoding" value="UTF-8"/>
</bean>
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
...
<property name="characterEncoding" value="UTF-8"/>
</bean>