当前位置: 首页 > 编程笔记 >

如何解决SpringBoot2.x版本对Velocity模板不支持的方案

李振国
2023-03-14
本文向大家介绍如何解决SpringBoot2.x版本对Velocity模板不支持的方案,包括了如何解决SpringBoot2.x版本对Velocity模板不支持的方案的使用技巧和注意事项,需要的朋友参考一下

背景

在springboot1.4.x版本之前对velocity的模板支持的是相当好的,不止出于什么原因springboot从1.5.x以后停止了对velocity的支持,甚至在2.x版本中移除了和velocity的相关代码。目前手上有些项目使用的是velocity模板引擎,同时也使用了springboot,现在想升级到springboot2.x,同时还想继续使用velocity,怎么办?springboot不支持,就自己想办法支持下吧。 思路:把springboot早期版本的velocity支持单独抽出一个jar。

步骤1:

git clone https://github.com/spring-projects/spring-framework.git

切换到 4.3.2.RELEASE 版本;拷贝org.springframework.ui.velocity和org.springframework.web.servlet.view.velocity 模块下velocity的相关代码;

步骤2:

git clone https://github.com/spring-projects/spring-boot.git

切换到v1.4.0.RELEASE;拷贝:org.springframework.boot.autoconfigure.velocity模块下 velocity的相关代码;

由于spring5.x及springboot2.x移除了velocity相关的代码及配置,还要把spring.vm文件拷贝过来,整体代码架构如下图:

直接编译打包

接入使用:

在项目中直接添加如下依赖:

<dependency> 
      <groupId>com.dianwoda.velocity</groupId>
      <artifactId>spring-boot-velocity-starter</artifactId>
      <version>1.0.0-SNAPSHOT</version>
  </dependency>

并添加如下配置:

spring.velocity.charset=UTF-8 
spring.velocity.properties.input.encoding=UTF-8 
spring.velocity.properties.output.encoding=UTF-8 
spring.velocity.resourceLoaderPath=classpath:/templates/ 
spring.velocity.suffix=.vm 
spring.velocity.toolbox-config-location=/WEB-INF/toolbox.xml 

在spring.xml中添加视图解析配置:

<!-- 设置视图解析工具 --> 
  <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
    <property name="cache" value="false"/>
    <property name="layoutUrl" value="layout/layout.vm"/>
    <property name="prefix" value="/templates/"/>
    <property name="suffix" value=".vm"/>
    <property name="exposeSpringMacroHelpers" value="true"/>
    <property name="contentType" value="text/html;charset=UTF-8"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityLayoutView"/>
  </bean>

按照上述配置即可在springboot2.x项目中使用velocity模板,欢迎有需要的小伙伴试用,使用过程中有问题可以直接反馈给我、

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 遇到不支持的major.minor版本52.0如何解决? 问题答案: 问题是由于Java版本不匹配。 这些是分配的专业编号。关于不受支持的major.minor版本的错误是因为在编译期间,你在运行时使用的是较高的JDK,而使用的是较低的JDK。 因此,“major.minor版本52.0”错误可能是因为jar是在JDK 1.8中编译的,但是你正在尝试使用JDK 1.7环境运行它。报告的

  • 不识字 [C:\计划文件(x86)\参考程序集\微软\框架\MonoAndroid\v7.0\mono.android.jar](无法处理类[android/app/ActivityTracker.class](不支持的类版本号[52.0](最大51.0,Java1.7)) 如何解决这个问题。。??

  • 当我运行HelloWorld时,它会返回: “java.lang.UnsupportedClassVersionError:HelloWorld已由java运行时的最新版本(类文件版本52.65535)编译,此版本的java运行时仅识别52.0以下的类文件版本。” 我该如何解决这个问题?

  • 我试图编译GLSL着色器在LWJGL使用OpenGL。我在MacOS Sierra上。 尝试编译着色器时出现以下错误: 着色器代码在Windows上工作,但在macOS上测试时却不能。下面是着色器代码: 下面是我如何加载着色器。。。 print语句返回正确的输出,但它仍然给我错误。 我在stackoverflow上下搜索了一个解决方案,但每个人都说他们在编译它时没有换行符,我有。我不明白为什么会这

  • 我目前正试图在代码中使用一个经过定制培训的OpenNLP名称查找器模型。我的项目使用OpenNLP1.6.0,并使用EclipseIDE开发。该模型还使用OpenNLP 1.6.0进行了训练。 然而,我遇到了一个恼人的错误: 这里有人问了一个类似的问题,答案说问题是由于OpenNLP模型使用与使用中的版本相同的版本进行训练(即,使用1.6.0训练模型,并在同样使用1.6.0的项目中使用它)。然而,

  • 本文向大家介绍解决低版本的浏览器不支持es6的import问题,包括了解决低版本的浏览器不支持es6的import问题的使用技巧和注意事项,需要的朋友参考一下 解决方法: 1. <script type="model" src="game.js"></script> 2. 下载最新版本的chrome浏览器 以上这篇解决低版本的浏览器不支持es6的import问题就是小编分享给大家的全部内容了,希望