I am trying to configure Thymeleaf Html page with Spring MVC. I have controller method from which I am trying to return he thymeleaf template html page. Its existing project which uses spring mvc + tiles.I need to integrate thymeleaf in to existing project. The template Engine is autowired which is coming from different Jar file. I have provided configuration below. I am not getting any exception but getting Page Not found when I try to load the page.
IS it possible to have one flow which resolves view with Tiles + Jps and another flow with Thymeleaf template. how can I achieve it .
@Controller
@RequestMapping("/thymeleafConfiguration")
public class ConfigController {
@Autowired
TemplateEngine templateEngine; // This class is coming from different jar and I have
//autowired. xml configuration is provided for reference
@PostConstruct // Changes needs to apply only to certain class so I am using
//postconstruct method in controller
// where I need to use thymeleaf template.
public void Init() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setCacheable(false);
templateResolver.setPrefix("/templates/thymeleafPage/");
templateResolver.setSuffix(".html");
templateEngine.setTemplateResolver(templateResolver);
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setOrder(1);
resolver.setTemplateEngine(templateEngine);
}
@RequestMapping(value = "/view") // controller method where I am redirecting thymeleaf
page
public String viewTemplate(){
return "thymeleaf";
}
}
application-context.xml
<bean id="thymeleafProcessor" class="com.java.ThymeleafTemplateProcessor">
<property name="templateEngine" ref="templateEngine"/>
</bean>
<bean id="htmlStringTemplateResolver" class="org.thymeleaf.templateresolver.StringTemplateResolver">
<property name="templateMode" value="HTML" />
<property name="cacheable" value="true" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="enableSpringELCompiler" value="true" />
<property name="templateResolvers">
<set>
<ref bean="htmlStringTemplateResolver" />
</set>
</property>
</bean>
Project Structure :
myProject
|
|Src
-Java
-templates
-thymeleafPage
- thymeleaf.html
-webContent
web.xml
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.*</url-pattern>
</servlet-mapping>
Can you please guide me how can I load the Page. I have referred documentation of thymeleaf ThymeleafDocumetation Tutorial
I have followed some examples but couldnt find much difference. I appreciate your help. Jordan
I have found the solution how to make it work for Jsp , HTML and Thymeleaf template together. Thank you