美文网首页
[Spring boot]Thymeleaf3的MessageS

[Spring boot]Thymeleaf3的MessageS

作者: kun1988 | 来源:发表于2016-11-28 22:38 被阅读0次

    在按照之前的那个文章升级使用Thymeleaf3后,使用MessageSouce的国际化会出现找不到的情况。到处找文章研究了很久还是自己找到了解决办法。
    解决办法是HTML模板用application.yml里面配置,CSS和JS模板在代码里面创建。

    speing:
      thymeleaf:
        cache: false
        mode: HTML
        view-names:
          - '*.html'
        suffix: ~
      messages:
        basename: i18n/messages
        cache-seconds: 0
    
    @Configuration
    public class ThymeleafConfig implements ApplicationContextAware {
        private static final String UTF8 = "UTF-8";
        private ApplicationContext applicationContext;
    
        private String[] array(String ...args) {
            return args;
        }
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.applicationContext = applicationContext;
        }
    
        private TemplateEngine templateEngine(ITemplateResolver templateResolver) {
            SpringTemplateEngine engine = new SpringTemplateEngine();
            engine.setTemplateResolver(templateResolver);
            return engine;
        }
    
        private ITemplateResolver cssTemplateResolver() {
            SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
            resolver.setApplicationContext(applicationContext);
            resolver.setPrefix("classpath:/static/css/");
            resolver.setTemplateMode(TemplateMode.CSS);
            resolver.setCacheable(false);
            return resolver;
        }
    
        @Bean
        public ViewResolver cssViewResolver() {
            ThymeleafViewResolver resolver = new ThymeleafViewResolver();
            resolver.setTemplateEngine(templateEngine(cssTemplateResolver()));
            resolver.setContentType("text/css");
            resolver.setCharacterEncoding(UTF8);
            resolver.setViewNames(array("*.css"));
            resolver.setCache(false);
            return resolver;
        }
    
        private ITemplateResolver javascriptTemplateResolver() {
            SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
            resolver.setApplicationContext(applicationContext);
            resolver.setPrefix("classpath:/static/js/");
            resolver.setTemplateMode(TemplateMode.JAVASCRIPT);
            resolver.setCacheable(false);
            return resolver;
        }
    
        @Bean
        public ViewResolver javascriptViewResolver() {
            ThymeleafViewResolver resolver = new ThymeleafViewResolver();
            resolver.setTemplateEngine(templateEngine(javascriptTemplateResolver()));
            resolver.setContentType("application/javascript");
            resolver.setCharacterEncoding(UTF8);
            resolver.setViewNames(array("*.js"));
            resolver.setCache(false);
            return resolver;
        }
    
    }
    

    相关文章

      网友评论

          本文标题:[Spring boot]Thymeleaf3的MessageS

          本文链接:https://www.haomeiwen.com/subject/pafapttx.html