面對客戶業務表單頻繁變更、開發被業務牽制的困境,本文介紹一套基於動態表單插件的解決方案,實現業務表單與核心系統鬆耦合集成,大幅提升實施效率與開發彈性。
核心架構:動態表單插件
客戶透過插件定義業務表單結構,核心程式自動生成對應介面與資料模型,無需修改 Java 代碼即可支援新增/變更欄位。
七大關鍵實作步驟
- 標記化 HTML 模板:手工製作含特殊標記(如
<!--StartFragment -->)的 HTML 頁面,上傳至伺服器。
- 串流解析與標記替換:逐行讀取,偵測標記行並替換為業務元件代碼(輸入框、文字區等),同時隱藏標記行以便後續定位。
- 動態業務代碼修改:根據隱藏標記定位行號,實現業務元件代碼的精準替換與更新。
- 最終頁面生成:移除所有標記文本,注入提交按鈕、隱藏域等業務必需元素,產出可直接渲染的頁面。
- 豎表儲存模式:採用 EAV(Entity-Attribute-Value)模式儲存表單定義與業務資料,突破傳統橫表欄位固定限制。
- 業務資料豎表存儲:每筆資料拆解為多筆「表單ID、欄位名、欄位值」記錄,支援任意欄位擴展。
- 橫向視圖重建:查詢時將豎表資料轉置為橫表格式,供報表顯示與匯出使用。
技術優勢與適用場景
- 零代碼變更支援新欄位:業務人員可自行維護表單結構,開發介入度歸零。
- 核心邏輯與表單結構完全解耦:系統穩定性不受業務變更影響。
- 適用於高度定製化、頻繁變更的報表系統:如金融監管報表、政府統計表單、醫療記錄模板等。
實施建議
核心解析引擎需處理巢狀標記、條件顯示、資料驗證規則等進階需求。建議採用成熟模板引擎(如 FreeMarker、Thymeleaf)作為底層,專注於動態模板管理與豎表存儲層的開發。詳細實作細節涉及公司核心技術,如有同類開發需求可進一步交流探討。