1. 程式人生 > >SpringBoot+Velocity,折騰了一個小時,竟然是因為一個小細節。

SpringBoot+Velocity,折騰了一個小時,竟然是因為一個小細節。

(spring boot最新版已經不支援Velocity)其實SpringBoot是非常方便的,使用Velocity模板比Spring配置更簡單。你不需要太多的配置。只需要

引用依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-velocity</artifactId>
    <version>${spring.boot.version}</version>
</dependency>

然後在resources下放模板templates目錄,就可以正常工作。

Hello.java
@Controller
public class Hello {
    @RequestMapping("/hello")
    public String hello(Map<String, Object> model){
        model.put("__projects",GitlabStore.getProjects());
        return "hello" ;
    }

}


hello.vm
<H1>${__projects.size()}</H1>
<table>
    <tr><td>name</td><td>id</td></tr>
    #foreach($json in ${__projects.values()})
        <tr><td>$json.get("name")</td><td>$json.get("id")</td></tr>
    #end
</table>
其實是很容易就能正確工作的,關鍵是開始配置velocity之前最原始的測試時,Hello.java的@Controller寫的是@RestController,
結果死活不工作。排查也沒有想到這裡,最後把檔案都刪除了手工重寫,正常工作了,也不知道是哪有兒區別。和原來的歷史比較才發現是
@Controller和@RestController區別,折騰了好久。