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

Struts2 表單請求流程入門:從 JSP 提交到 Action 執行的完整生命週期

     編輯:Java 相關知識

基礎範例

  • login.jsp:<s:form action="login"> 包含 username、password 欄位。
  • struts.xml:<action name="login" class="...LoginAction"> 映射 success→welcome.jsp、input→login.jsp。
  • LoginAction:含 username、password 屬性、execute()、validate()。
  • welcome.jsp:<s:property value="username"/> 顯示結果。

控制台輸出流程

******setPassword******   // 1. 自動設定 password
*****setUsername()*****   // 2. 自動設定 username
******validate******      // 3. 自動執行驗證
*****execute()*****       // 4. 自動執行業務邏輯
******getUsername()*****  // 5. 返回值導向 success,渲染頁面讀取 username
******getPassword()*****  // 6. 渲染頁面讀取 password

生命週期詳細說明

  1. 請求提交:瀏覽器 POST 表單至 action="login"。
  2. Action 映射:struts.xml 匹配 name="login",實例化 LoginAction。
  3. 屬性自動注入:Struts2 依名稱匹配自動呼叫 setter(setUsername、setPassword)。
  4. 驗證攔截:validate() 執行,若有錯誤 addFieldError,返回 INPUT 結果,導回 login.jsp 顯示 <s:fielderror/>。
  5. 業務執行:驗證通過呼叫 execute(),返回 SUCCESS(預設)。
  6. 結果導向:根據返回字串匹配 <result name="success">/welcome.jsp</result>。
  7. 視圖渲染:JSP 以 OGNL 取得 Action 屬性值顯示。

關鍵點

  • validate() 在 execute() 之前自動執行,屬於攔截器鏈一部分。
  • 返回字串對應 struts.xml 中 <result> 的 name 屬性。
  • 結果路徑以 / 開頭表示相對於 Web 應用根目錄的絕對路徑。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved