Package com.connect_group.thymeleaf.testing.config

Source Code of com.connect_group.thymeleaf.testing.config.ThymesheetConfig

package com.connect_group.thymeleaf.testing.config;

import java.util.HashSet;
import java.util.Set;

import javax.servlet.ServletContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.thymeleaf.cache.StandardCacheManager;
import org.thymeleaf.dialect.IDialect;
import org.thymeleaf.spring3.view.ThymeleafViewResolver;
import org.thymeleaf.templatemode.ITemplateModeHandler;
import org.thymeleaf.templateresolver.FileTemplateResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;

import com.connect_group.thymeleaf.testing.ThymeleafTestEngine;
import com.connect_group.thymesheet.templatemode.ThymesheetStandardTemplateModeHandlers;

@Configuration
public class ThymesheetConfig {
  @Value("${thymeleaf.template.cache.enabled:true}")
  protected boolean templateCacheEnabled;
 
  @Value("${thymeleaf.template.mode:LEGACYHTML5}")
  protected String templateMode;
 
  @Value("${thymeleaf.template.characterEncoding:UTF-8}")
  protected String characterEncoding;

    @Autowired
    ApplicationContext applicationContext;

    @Autowired
    ServletContext servletContext;
   
  @Bean
  public StandardCacheManager thymeleafCacheManager() {
    return new StandardCacheManager();
  }

  public Set<ITemplateModeHandler> templateModeHandlers() {
    HashSet<ITemplateModeHandler> set = new HashSet<ITemplateModeHandler>();
    ITemplateModeHandler handler = getHandler();
    set.add(handler);
    return set;
  }
 
  @Bean
  @DependsOn("propertyConfigurer")
  public ThymeleafViewResolver thymeleafViewResolver() {
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setCharacterEncoding(characterEncoding);
    viewResolver.setTemplateEngine(testEngine());
    viewResolver.setOrder(0);
    return viewResolver;
  }
 
  @Bean
  public UrlBasedViewResolver urlBasedViewResolver() {
    UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
   
    viewResolver.setOrder(2);
    viewResolver.setViewClass(org.springframework.web.servlet.view.InternalResourceView.class);
   
    return viewResolver;
  }
 
  @Bean
  @DependsOn("propertyConfigurer")
  public ThymeleafTestEngine testEngine() {
    ThymeleafTestEngine engine = new ThymeleafTestEngine();

    engine.setCacheManager(thymeleafCacheManager());
    engine.setTemplateModeHandlers(templateModeHandlers());
    engine.setAdditionalDialects(additionalDialects());

   
   
    Set<ITemplateResolver> templateResolvers = new HashSet<ITemplateResolver>();
    templateResolvers.add(servletContextTemplateResolver());
    templateResolvers.add(fileTemplateResolver());
    engine.setTemplateResolvers(templateResolvers);
   
    engine.setServletContext(servletContext);
    engine.setApplicationContext(applicationContext);
    return engine;
  }
 
  /**
   * To be overridden if you require additional dialects.
   * @return
   */
  protected Set<IDialect> additionalDialects() {
    Set<IDialect> additionalDialects = new HashSet<IDialect>();
    return additionalDialects;
  }

  protected ITemplateModeHandler getHandler() {
    ITemplateModeHandler handler = ThymesheetStandardTemplateModeHandlers.LEGACYHTML5;
    for(ITemplateModeHandler stdHandler : ThymesheetStandardTemplateModeHandlers.ALL_TEMPLATE_MODE_HANDLERS) {
      if(stdHandler.getTemplateModeName().equals(templateMode)) {
        handler=stdHandler;
      }
    }
    return handler;
  }
 
 
  private FileTemplateResolver fileTemplateResolver() {
    FileTemplateResolver resolver = new FileTemplateResolver();
    resolver.setCharacterEncoding("UTF-8");
    resolver.setTemplateMode("LEGACYHTML5");
    resolver.setCacheable(templateCacheEnabled);
    resolver.setOrder(2);
    return resolver;
  }
 
  private ServletContextTemplateResolver servletContextTemplateResolver() {
    ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
    resolver.setCharacterEncoding(characterEncoding);
    resolver.setTemplateMode(templateMode);
    resolver.setCacheable(templateCacheEnabled);
    resolver.setOrder(1);
    return resolver;
  }
   
}
TOP

Related Classes of com.connect_group.thymeleaf.testing.config.ThymesheetConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.