velocity使用——SpringBoot版本由1.5.9變為1.3.5出現問題
阿新 • • 發佈:2019-01-10
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() {
}
}
- 結果顯示: