私のアプリケーションのThymeleafの設定は以下のように設定されている:Thymeleaf + Spring + TomcatでUTF-8サポートを有効にするにはどうすればよいですか?
@Bean
public ServletContextTemplateResolver templateResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setCacheable(false);
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setPrefix(HTML_VIEWS);
templateResolver.setSuffix(".html");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addDialect(new SpringSecurityDialect());
templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
viewResolver.setCache(false);
viewResolver.setOrder(1);
return viewResolver;
}
OS(CentOSの7)デフォルトのエンコーディングはUTF-8であり、すべての生成されたファイルは、UTF-8 encondingを取得します。それでも文字を正しく表示できないようです。私はここで見つけたたくさんの提案を無駄にしようとしました。
Spring Securityの設定で、CsrfFilter
の前にCharacterEncodingFilter
を設定することもお勧めします。また、アプリはとのデータを変えずに保存しています。
マイsecuritu構成で始まる:
@Override
protected void configure(HttpSecurity http) throws Exception {
CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
encodingFilter.setEncoding("UTF-8");
encodingFilter.setForceEncoding(true);
http.addFilterBefore(encodingFilter,CsrfFilter.class);
// more security configs
}
私は何をしないのですか?
あなたのテンプレートに ''がありますか? – Ilya
私のすべてのテンプレートの '
'セクションには、 ' '。 – gtludwig