首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Struts 1.1 + Tiles 實戰開發技巧總結:模組化配置、事件命名、參數獲取與公用方法

     編輯:Java 程式設計入門

一、模組化配置管理

1. Struts 多配置檔

<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"/>

2. Tiles 定義檔

  • 主定義檔:tiles-defs_zh_CN.xml (支援 i18n)
  • 命名規範:{系統}.{功能模組}.{頁面模組},如 default.frame
  • 在 Struts Action 直接引用 Tiles 定義名:
    <action path="/main" type="org.apache.struts.actions.ForwardAction" parameter="default.frame"/>

3. 配置檔註解與編輯器

  • XML 區塊前加註解說明功能
  • **禁止**用 JBuilder 編輯 XML (會改變編碼),建議 UltraEdit、VS Code 等

二、事件與命名規範

元素命名規則範例
Action/ActionForm 類別PascalCase + 動作名 + Action/FormLoginAction, LoginForm
Action 路徑 (.do)camelCase,動作名login.do, loginSys.do
頁面動作參數統一用 act 區別於表單 action/editRecord.do?act=Edit
JSP 檔名同 Action 路徑login.jsp

Filter 控制機制

  • 菜單請求 = GET → 查菜單表、檢查權限
  • 操作請求 = POST → 取 act 參數、檢查權限點

三、參數資訊獲取四大管道

  1. Application 共享:PlugIn 啟動時載入,sc.setAttribute(key, value),Action 中 getServlet().getServletContext().getAttribute(key)
  2. Request 範圍:request.setAttribute("key", list),輕量、請求結束自動釋放
  3. Tiles Controller:定義 controllerClass 實作 Controller.perform(),注入頁面專屬資料
  4. 錯誤訊息統一顯示:
    Properties: message.common={0}
    Action: ams.add(GLOBAL_MESSAGE, new ActionMessage("message.common", ex.getMessage()))
    JSP: <html:messages id="msg" message="true"><bean:write name="msg"/></html:messages>

四、開發規範與公用方法庫

1. 套件結構

按業務模組劃分:telecombi.logic.sysman.security,Action/Form 同包,避免跨包調用

2. 屬性命名

駝峰式:staffId, staffName,禁用底線

3. 雙重驗證

  • 前端:<html:javascript formName="..." dynamicJavascript="true" staticJavascript="false"/>
  • 後端:Action.execute() 再次驗證

4. Action 委派 Deal 類別

邏輯超過一個方法 → 新建 XxxDeal (如 LoginDeal) 集中處理,Action 僅負責流程控制

5. DBManager 核心方法

方法用途回傳
Select(sql, className)查詢結果自動映射為 Bean ListArrayList
executeSql(sql) / executeBatchSql(sqls)Insert/Update/DeleteOPERATE_SUCCESS/FAILED
select(sql)傳統 ResultSet → Hashtable (欄位名→ArrayList)Hashtable
AutoSetForm(sql, form)查詢結果自動填充 Form Bean已填充的 Form
execProc(procName, params)呼叫預存程序ProcOuts (result, exceptionInfo)

6. 下拉選單資料轉換工具

private static ArrayList hashToLVB(Hashtable ht, String id, String name, boolean hasBlank) {
    // 將 Hashtable 兩欄轉為 LabelValueBean List,供 html:options 使用
}

7. 操作結果回報統一模式

  • Properties 定義 message.common={0}
  • Action 使用 ActionMessages 包裝結果
  • JSP 以 <html:messages> 顯示

總結

模組化配置、統一命名、四大參數管道、公用 Deal/DBManager/工具方法,構成高效 Struts 團隊開發基礎設施。持續沉澱、規範演進,能大幅降低維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved