Spring MVC 与 Thymeleaf 集成 + 现有 JSP apache tiles
Spring MVC Integration with Thymeleaf + Existing JSP apache tiles
我正在尝试使用 Spring MVC 配置 Thymeleaf Html 页面。我有控制器方法,我试图从中 return thymeleaf 模板 html 页面。它现有的项目使用 spring mvc + tiles.I 需要将 thymeleaf 集成到现有项目中。模板引擎是自动装配的,来自不同的 Jar 文件。我在下面提供了配置。我没有遇到任何异常,但是当我尝试加载页面时却找不到页面。
是否可以有一个流程使用 Tiles + Jps 解析视图,而另一个流程使用 Thymeleaf 模板。我怎样才能实现它。
@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";
}
}
申请-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>
项目结构:
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>
能否指导我如何加载页面。我已经提到了 thymeleaf 的文档
ThymeleafDocumetation
Tutorial
我遵循了一些例子,但没有发现太大的不同。我感谢您的帮助。
乔丹
我找到了如何让它同时适用于 Jsp 、 HTML 和 Thymeleaf 模板的解决方案。
谢谢
我正在尝试使用 Spring MVC 配置 Thymeleaf Html 页面。我有控制器方法,我试图从中 return thymeleaf 模板 html 页面。它现有的项目使用 spring mvc + tiles.I 需要将 thymeleaf 集成到现有项目中。模板引擎是自动装配的,来自不同的 Jar 文件。我在下面提供了配置。我没有遇到任何异常,但是当我尝试加载页面时却找不到页面。
是否可以有一个流程使用 Tiles + Jps 解析视图,而另一个流程使用 Thymeleaf 模板。我怎样才能实现它。
@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";
}
}
申请-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>
项目结构:
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>
能否指导我如何加载页面。我已经提到了 thymeleaf 的文档 ThymeleafDocumetation Tutorial
我遵循了一些例子,但没有发现太大的不同。我感谢您的帮助。 乔丹
我找到了如何让它同时适用于 Jsp 、 HTML 和 Thymeleaf 模板的解决方案。 谢谢