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

Struts HelloApp 學習筆記:核心標簽、控制器流程與配置詳解

     編輯:Java 相關知識

視圖層核心標簽速查

標簽功能關鍵屬性
<html:errors>顯示框架組件產生的錯誤消息無
<html:form>創建 HTML 表單,綁定 ActionForm Beanaction、focus 等
<html:text>表單文本框,綁定 Bean 屬性property
<bean:message>輸出國際化文本,從 ResourceBundle 取值key
<bean:write>輸出 Bean 屬性值name、property
<logic:present>判斷 Bean 在指定範圍存在則輸出體內容name、scope

控制器組件架構

  • ActionServlet:框架自帶核心控制器,通常無需擴展。
  • Action:開發者擴展點,處理具體 HTTP 請求。

請求處理全流程

  1. 用戶提交表單 → 框架自動裝配數據到 ActionForm Bean(屬性與字段一一映射)。
  2. 自動調用 validate() 驗證:
    • 返回 null 或空 ActionErrors → 驗證通過。
    • 含 ActionMessage → 保存至 request 轉發回輸入頁,<html:errors> 顯示錯誤。
  3. 驗證通過 → 調用 Action.execute() 核心業務邏輯。

Action.execute() 簽名與參數

public ActionForward execute(
    ActionMapping mapping,   // struts-config.xml  配置映射
    ActionForm form,         // 已驗證的表單數據
    HttpServletRequest request,
    HttpServletResponse response
) throws IOException, ServletException;
  • 返回 ActionForward 指定轉發路徑。
  • 向 JSP 傳遞數據:request.setAttribute("personbean", pb);JSP 用 <logic:present name="personbean" scope="request"> 讀取。

struts-config.xml 關鍵配置解讀

<action
    path="/HelloWorld"
    type="hello.HelloAction"
    name="HelloForm"
    scope="request"
    validate="true"
    input="/hello.jsp">
    <forward name="SayHello" path="/hello.jsp"/>
</action>
  • path:請求訪問路徑
  • type:Action 實現類全限定名
  • name:傳入的 ActionForm Bean 名稱
  • scope:Bean 存放範圍(request/session)
  • validate:是否執行表單驗證
  • input:驗證失敗轉發頁面
  • forward:邏輯視圖名稱映射物理路徑
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved