2015-01-21 89 views
1

我正在使用Spring MVC和Thymeleaf進行Java配置。在模板的html頁面的語言設置爲通過這個代碼2012:設置語言springMVC/Thymeleaf

<html lang="sv"> 

而且編碼通過這個元標記設置爲UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

但由於某些原因,那將不會顯示瑞典文字母。

我試着將<html>標籤更改爲XHTML版本xml:lang="en",但它沒有區別。

由於我對Spring和Thymeleaf還是很新的,我不知道哪裏可能出錯,或者語言/字符集應該被聲明/設置的位置,所以我給你提供了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; 
    } 
} 

回答

1

以下行添加到templateResolverThymeleafConfig

resolver.setCharacterEncoding("UTF-8"); 

docssetCharacterEncoding說:

指定當 視圖被呈現的字符編碼要被設置到響應。

2

我只有當財產characterEncoding加入到兩個ServletContextTemplateResolverThymeleafViewResolver正確的編碼。

<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>