透過 JBoss Tools 整合開發環境,體驗 Seam 專案建立、實體類別產生、CRUD 介面自動生成的完整流程,理解 Seam Gen 代碼生成機制與產出結構。


首次使用需設定 Target Runtime 與 Target Server (JBoss AS)。

配置 Connection Profile 連接資料庫,完成後點擊 Finish 產生專案。
產生 4 個 Eclipse 專案:
seamfirst — Web 專案 (WAR)seamfirst-ear — EAR 封裝專案seamfirst-jar — EJB 專案seamfirst-test — 測試專案啟動 JBoss Server,訪問 https://localhost:8080/seamfirst:

內建登入/登出功能與首頁,展示 Seam 安全模組預設實作。
MySQL 資料庫含 Customer 表:ID (int)、customername (varchar)、customerdesc (varchar)、createdate (date)、email (varchar)


選單新增「Customer List」,支援完整新增、刪除、修改、查詢操作。
| 類別 | 類型 | 功能 | 繼承自 |
|---|---|---|---|
| Customer.java | Entity | 資料表映射 | — |
| CustomerHome.java | Session Bean | 建立/更新/刪除 | org.jboss.seam.framework.EntityHome |
| CustomerList.java | Session Bean | 查詢/列表 | org.jboss.seam.framework.EntityQuery |
均使用 @Name 註解,實現表現層直接存取業務層元件。
#{customerList.resultList} 中的 resultList 定義於父類 EntityQuery,非 CustomerList 自身屬性。
每個 .xhtml 對應 .page.xml,為 Seam 對 JSF 導航、參數綁定、安全控制的擴展,後續文章將詳細說明。
Seam Gen 產生功能完備但介面風格固定,實務上需客製化產生模板 (FreeMarker) 以符合專案 UI 標準與操作習慣。