<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml,
/WEB-INF/xml/struts-config-pages.xml,
/WEB-INF/xml/struts-config-sysman.xml
</param-value>
</init-param>
struts-config-{module}.xml (連字號而非底線)struts-config-pages.xml,使用 ForwardAction:<action path="/main" type="org.apache.struts.actions.ForwardAction" parameter="/main.jsp"/>tiles-defs_zh_CN.xml (支援 i18n){系統}.{功能模組}.{頁面模組},如 default.frame<action path="/main" type="org.apache.struts.actions.ForwardAction" parameter="default.frame"/>| 元素 | 命名規則 | 範例 |
|---|---|---|
| Action/ActionForm 類別 | PascalCase + 動作名 + Action/Form | LoginAction, LoginForm |
| Action 路徑 (.do) | camelCase,動作名 | login.do, loginSys.do |
| 頁面動作參數 | 統一用 act 區別於表單 action | /editRecord.do?act=Edit |
| JSP 檔名 | 同 Action 路徑 | login.jsp |
act 參數、檢查權限點PlugIn 啟動時載入,sc.setAttribute(key, value),Action 中 getServlet().getServletContext().getAttribute(key)request.setAttribute("key", list),輕量、請求結束自動釋放controllerClass 實作 Controller.perform(),注入頁面專屬資料message.common={0}ams.add(GLOBAL_MESSAGE, new ActionMessage("message.common", ex.getMessage()))<html:messages id="msg" message="true"><bean:write name="msg"/></html:messages>按業務模組劃分:telecombi.logic.sysman.security,Action/Form 同包,避免跨包調用
駝峰式:staffId, staffName,禁用底線
<html:javascript formName="..." dynamicJavascript="true" staticJavascript="false"/>邏輯超過一個方法 → 新建 XxxDeal (如 LoginDeal) 集中處理,Action 僅負責流程控制
| 方法 | 用途 | 回傳 |
|---|---|---|
Select(sql, className) | 查詢結果自動映射為 Bean List | ArrayList |
executeSql(sql) / executeBatchSql(sqls) | Insert/Update/Delete | OPERATE_SUCCESS/FAILED |
select(sql) | 傳統 ResultSet → Hashtable (欄位名→ArrayList) | Hashtable |
AutoSetForm(sql, form) | 查詢結果自動填充 Form Bean | 已填充的 Form |
execProc(procName, params) | 呼叫預存程序 | ProcOuts (result, exceptionInfo) |
private static ArrayList hashToLVB(Hashtable ht, String id, String name, boolean hasBlank) {
// 將 Hashtable 兩欄轉為 LabelValueBean List,供 html:options 使用
}
message.common={0}ActionMessages 包裝結果<html:messages> 顯示模組化配置、統一命名、四大參數管道、公用 Deal/DBManager/工具方法,構成高效 Struts 團隊開發基礎設施。持續沉澱、規範演進,能大幅降低維護成本。