Tapestry 5 採用「POJO 頁面類 + 對應模板」的極簡架構。頁面類無需繼承框架基類、無需實現接口,純粹的 Java 類即可承載頁面邏輯。本文將演示如何在幾分鐘內構建首個顯示 "Hello World!" 的頁面。
首頁面類命名有約定:類名為 Start,置於 com.kingbegin.web.pages 包下(可通過配置修改)。
package com.kingbegin.web.pages;
public class Start {
private String message;
public String getMessage() {
return "Hello World!";
}
}
message 屬性配合 getMessage() 讀取器,即可在模板中直接綁定顯示。隨業務增長,頁面類可自然擴展事件處理方法與註解。
模板文件 Start.tml 可放置於兩處:
src/com/kingbegin/web/pages/WebRoot/WEB-INF/<html xmlns:t="https://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
<head>
<title>第一個 Tapestry 頁面</title>
</head>
<body>
<h1>第一個 Tapestry 頁面</h1>
<h2 id="label1">${message}</h2>
</body>
</html>
xmlns:t="..." 啟用 Tapestry 組件標籤庫${message} 自動綁定頁面類的 getMessage() 返回值啟動應用訪問首頁,瀏覽器將渲染出 "Hello World!",完成從頁面類到模板的完整數據流綁定。
掌握基礎結構後,可進一步探索:組件化開發(<t:...> 標籤)、頁面導航與上下文傳遞、Ajax 區域更新 等 Tapestry 5 核心能力。