是什麼
Pebble is a Java templating engine inspired by Twig. It features templates inheritance and easy-to-read syntax, ships with built-in autoescaping for security, and includes integrated support for internationalization.
Pebble是一款受Twig啟發的Java模板引擎。它具有模板繼承和易於閱讀的語法,內建有安全的autoescaping,幷包括對國際化的綜合支援。
twig是一款非常流行的php的模板引擎,被眾多php框架廣泛應用。 語法同樣在python django的模板引擎裡可以看到。
為什麼
在Thymeleaf
裡我們的變數輸出要寫在標籤裡,這樣感覺非常彆扭
<td th:text="${prod.name}">Oranges</td>
複製程式碼
依賴
<dependency>
<groupId>io.pebbletemplates</groupId>
<artifactId>pebble-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
複製程式碼
使用
@RequestMapping("/hello")
public String hello() {
PebbleEngine engine = new PebbleEngine.Builder().build();
PebbleTemplate compiledTemplate = engine.getTemplate("templates/home.html");
Writer writer = new StringWriter();
Map<String, Object> context = new HashMap<>();
context.put("websiteTitle", "My First Website");
context.put("content", "My Interesting Content");
try {
compiledTemplate.evaluate(writer, context);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String output = writer.toString();
return output;
}
複製程式碼
新增模板檔案
<!DOCTYPE html>
<h1>{{content}}</h1>
</html>
複製程式碼
可以看到不用再像 Thymeleaf
那樣,輸出變數要寫進標籤屬性裡面。
靜態資源
mvc:
static-path-pattern: /static/**
複製程式碼