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

Struts 2 學習筆記(二):極簡入門與核心差異——struts.xml 位置、FreeMarker 依賴、FilterDispatcher、Package 節點、Session 操作、標籤庫、國際化、驗證框架

     編輯:Java 相關知識

從零建立最簡 Struts 2 應用,記錄關鍵差異點與核心組件:struts.xml 放置位置、FreeMarker 必備、FilterDispatcher 請求處理、<package> 節點、Session Map 操作、統一前綴標籤庫、國際化配置、XWork 驗證框架整合。

關鍵差異點速查

1. struts.xml 放置位置

Struts 1 放 WEB-INF/,Struts 2 **必須放 WEB-INF/classes/**。否則報錯:There is no Action mapped for namespace / and action name Login。因未在 web.xml 指定,ClassLoader 從 classpath 載入。

2. FreeMarker 必備

最簡應用也需 freemarker-xxx.jar,UI 標籤依賴 FreeMarker ftl 模板。

3. FilterDispatcher 處理所有請求

url-pattern: /*,自動將 *.action 轉給業務 Action。

4. <package> 節點包裹 <action>

必須指定 name 屬性(自定義命名),與 Java 套件無關。

5. Session 操作

ActionContext.getContext().getSession() 返回 Map,直接當 HttpSession 用。Struts 2 攔截器自動完成 Map ↔ HttpSession 轉換。

6. Action 屬性存放

屬性值存放於 ValueStack(名為 struts.valueStack),類型為 ValueStack。感覺資料與控制器混雜,受 Struts 1 ActionForm 影響。

7. 標籤庫:統一前綴 s:

JSP 頁面:<%@taglib prefix="s" uri="/struts-tags"%>。不再像 Struts 1 分 5 類命名空間,功能更強。

8. 國際化配置

struts.properties 指定 struts.custom.i18n.resources=messageResource,classpath 下尋找 messageResource_語言_國家.properties。輸出:<s:text name="key"> 或 <s:property value='%{getText("key")}'/>。

9. 臨時/全域資源檔載入

支援 JSP 頁面臨時載入資源檔,也支援全域屬性載入(上條即全域方式)。

10. 驗證框架:配置式驗證

  • 程式式:Action 繼承 ActionSupport 實作 validate(),錯誤放入 fieldErrors,OGNL 輸出,轉向 input 邏輯視圖
  • 配置式:Action 繼承 ActionSupport**無需實作 validate()**,寫 ActionName-validation.xml 放同目錄即可。本質使用 XWork 驗證框架
  • <s:form> 預設具備輸出驗證錯誤能力
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved