HTML 文件 (`.html`) **無法直接執行 Java 代碼**。瀏覽器只解析 HTML/CSS/JS。若在 `.html` 中看到類似 `<% ... %>` 或 `${...}`,通常是:
| 技術 | 副檔名 | 執行端 | 語法示例 | 現代推薦度 |
|---|---|---|---|---|
| JSP | .jsp | Server (Servlet) | `<% out.print(user.getName()); %>` | ⭐ (維護模式,不建議新專案) |
| Thymeleaf | .html | Server (Spring MVC) | `` | ⭐⭐⭐⭐⭐ (Spring Boot 官方推薦) |
| FreeMarker | .ftl | Server | `${user.name}` | ⭐⭐⭐ (成熟、功能強) |
| Velocity | .vm | Server | `$user.name` | ⭐⭐ (Apache 退休,維護模式) |
| Vue/React (SSR) | .vue/.jsx | Server + Client | `{{ user.name }}` | ⭐⭐⭐⭐⭐ (現代全棧首選) |
| SSI | .shtml/.html | Server (Nginx/Apache) | `` | ⭐ (極簡片段複用) |
用戶頁面
用戶名
管理員面板
商品
價格
控制器:
@GetMapping("/user")
public String userPage(Model model) {
model.addAttribute("user", userService.getCurrentUser());
model.addAttribute("items", itemService.findAll());
return "user"; // 解析為 templates/user.html
}
若純前端專案需複用導航欄/頁腳: