1. 背景
Velocity是一个基于Java的模板引擎,通过特定的语法,Velocity可以获取在java语言中定义的对象,从而实现界面和java代码的真正分离,这意味着可以使用velocity替代jsp的开发模式了。这使得前端开发人员可以和 Java 程序开发人员同步开发一个遵循 MVC 架构的 web 站点,在实际应用中,velocity还可以应用于很多其他的场景.
2. 项目需求
开发环境: jdk 1.8
spring boot 1.5.9
intellij IDEA
在项目开发过程中,需要使用velocity,一个基于Java的模板引擎,其提供了一个Context容器,在java代码里面我们可以往容器中存值,然后在vm文件中使用特定的语法获取。
例如:由于缺少velocity模板,不可识别VM语法:
vm文件如下:
<html>
<body>
<pre>
Hello VM.
$!{value1} ##value1传过来了
$!{value2} ##value2没有,不显示,template的特性
${value3}
</pre>
</body>
</html>
由于velocity在1.5版本之后已经不支持此模板,所以使用,需要修改版本,以及添加配置文件,修改test文件。
- pom.xml中修改
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<!--版本原为1.5.9-->
<relativePath/> <!-- lookup parent from repository -->
</parent>
- 添加依赖:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
- ApplicationTest文件修改
因为pom文件中版本改为1.3.5以后,在test文件中的测试文件中的SpringBootTest就不能识别。
如:@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。所以要把test文件中的测试代码,改为1.3.5支持的测试代码,头文件,文件包等。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; //也就是这行
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ToutiaoApplicationTests {
@Test
public void contextLoads() {
}
}
将其修改为1.3.5版本支持的测试注解:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ToutiaoApplication.class)
@WebAppConfiguration
public class ToutiaoApplicationTests {
@Test
public void contextLoads() {
}
}
- 结果显示: