springmvc 同时配置thymeleaf和jsp两种模板引擎
来源:互联网 发布:免费手机组态软件 编辑:程序博客网 时间:2024/04/28 21:51
问题说明
在我的意识中,是主导使用thymeleaf的,因为我一直想知道springboot推荐的它到底有什么好。在普通的springboot项目中,直接引入thymeleaf的依赖包就可以进行视图解析了,而在一般的spring项目中还需要我们进行一些手动的配置,于是就出现了这个问题,怎么整合多个模板引擎在一起。
解决方案
- 引入thymeleaf的依赖
<!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>${thymeleaf.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring3 --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring3</artifactId> <version>${thymeleaf.version}</version> </dependency>
thymeleaf的版本2和3都行,3功能更完善一点。
另外tymeleaf-spring3 or thymeleaf-spring4也随意使用。
2. 配置springmvc视图解析
关键是这一步,这一步网上的版本就多了。我大概分析了一下主要有下面两种情况:
- 第一种情况jsp页面和html页面分别是位于不同的视图文件夹下面
- 第二种情况两种页面同时存在同一个视图文件夹中
先来看第一种情况的配置:
这里可以参考thymeleaf官方的一个宠物商店的配置地址是
thymeleaf官方配置例子
下面是咱们的例子:
<bean id="templateResolver" class="org.thymeleaf.spring3.templateresolver.SpringResourceTemplateResolver"> <property name="prefix" value="WEB-INF/" /> <property name="suffix" value=".html" /> <property name="templateMode" value="HTML5" /> <property name="cacheable" value="false" /> <property name="characterEncoding" value="UTF-8"/> </bean> <bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine"> <property name="templateResolver" ref="templateResolver" /> </bean> <!-- 配置多个视图解析--> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="viewResolvers"> <list> <!--used thymeleaf --> <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver"> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine" ref="templateEngine" /> <property name="viewNames" value="html/*"/> <property name="order" value="2" /> </bean> <!-- used jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> <property name="viewNames" value="jsp/*"/> <property name="order" value="1" /> </bean> </list> </property> </bean>
关键点: <property name="prefix" value="/WEB-INF/"/>
<property name="viewNames" value="/*"/>
接下来说第二种情况的配置:
也就是由第一种配置延伸过来的,prefix的值相同了
<bean id="templateResolver" class="org.thymeleaf.spring3.templateresolver.SpringResourceTemplateResolver"> <property name="prefix" value="WEB-INF/views/" /> <property name="templateMode" value="HTML5" /> <property name="cacheable" value="false" /> <property name="characterEncoding" value="UTF-8"/> </bean> <bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine"> <property name="templateResolver" ref="templateResolver" /> </bean> <!-- 配置多个视图解析--> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="viewResolvers"> <list> <!--used thymeleaf --> <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver"> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine" ref="templateEngine" /> <property name="viewNames" value="*.html" /> <property name="order" value="1" /> </bean> <!-- used jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="viewNames" value="*.jsp"/> <property name="order" value="2" /> </bean> </list> </property> </bean>
不同的地方在这里: <property name="viewNames" value="*.html"/>
<property name="viewNames" value="*.jsp"/>
到这里还没完,需要我们在controller层如何返回?
第一种情况return "jsp/abc" || return "thymeleaf/abc"
第二种情况return "abc.jsp" || return "abc.html"
2 0
- springmvc 同时配置thymeleaf和jsp两种模板引擎
- Springmvc 配置thymeleaf 和jsp 双模板引擎
- SpringMVC 配置Thymeleaf模板
- 在SpringMVC 中使用 Thymeleaf 模板引擎
- 【三】、整合SpringMVC(基本配置和thymeleaf模板选择)
- springmvc集成jsp和freemark两个模板引擎
- SpringBoot Thymeleaf 模板引擎
- Thymeleaf 模板引擎
- SpringMVC整合Thymeleaf模板
- springmvc配置同时支持html和jspl两种格式的页面
- Spring Boot学习笔记-Thymeleaf模板引擎的配置
- spring-boot配置html模板引擎freemarker、thymeleaf
- 【Thymeleaf】新一代Java模板引擎Thymeleaf
- 同时使用jsp与thymeleaf
- thymeleaf模板引擎和shiro框架的整合
- SpringBoot-07引擎模板thymeleaf和freemarker的使用
- SpringMVC配置Thymeleaf
- Thymeleaf模板引擎 学习笔记
- 深度学习在图像识别中的研究进展与展望
- 继承与实现
- Weapp微信小程序开发实战
- 从程序员到项目经理(10):程序员加油站 --要执着但不要固执
- React Navigation--DrwaerNavigator 详细的例子
- springmvc 同时配置thymeleaf和jsp两种模板引擎
- Android Studio/Gradle/重复依赖
- 网络库libevent、libev、libuv对比
- 回溯法———n皇后问题
- cxf-Springmvc-maven实现webservice
- 堆排序算法(Heap Sort) Java实现
- 关于NSDate,NSDateFormatter,NSTimeZone的一些通俗理解
- VS编译方式 \MT \MD \MTd \MDd
- 求N个正整数的最大公约数和最小公倍数