Java 後端開發者常困惑:前端頁面怎麼做?是先寫靜態 HTML 再套模板引擎?還是直接在 JSP/Thymeleaf 裡寫 CSS?本文梳理企業級專案標準前端建置流程,涵蓋工具鏈、協作模式、技術選型與避坑指南。
| 階段 | 產出物 | 負責角色 | 關鍵工具 |
|---|---|---|---|
| 1. 需求與原型 | Axure/Figma 原型圖、API 合約 (Swagger) | PM、UI/UX、架構師 | Figma, Swagger, Confluence |
| 2. 靜態頁面開發 | 純 HTML/CSS/JS 頁面 (無後端邏輯) | 前端工程師 / 全端工程師 | VS Code, Vue/React (可選), Bootstrap/Tailwind, ESLint/Prettier |
| 3. 模板整合 | Thymeleaf/FreeMarker/JSP 模板 + 靜態資源 | 後端工程師 | IDEA/Eclipse, Maven/Gradle, Thymeleaf Layout Dialect |
| 4. 聯調與優化 | 可運行的完整應用 | 全團隊 | Chrome DevTools, Postman, JMeter, SonarQube |
| 靜態寫法 | Thymeleaf 動態寫法 | 說明 |
|---|---|---|
<a href="list.html"> | <a th:href="@{/user/list}"> | 路徑由控制器映射決定,避免硬編碼 |
<img src="img/logo.png"> | <img th:src="@{/images/logo.png}"> | 靜態資源經過版本指紋/快取策略 |
<span>張三</span> | <span th:text="${user.name}"> | 模型資料注入 |
<div class="item">...</div> (重複) | <div th:each="item : ${list}">...</div> | 迴圈渲染 |
<div v-if="show"> | <div th:if="${show}"> | 條件渲染 |
<script src="app.js"> | <script th:src="@{/js/app.js}"> | 資源引用統一 |