簡體   English   中英

Struts 1.2(生命周期)中的控制流程

[英]Flow of control in Struts 1.2 (Lifecycle)

標題可能聽起來有點模糊,但我會試一試。 我有2個servlet:

  1. one.java:擴展Action class ,根據index.jsp的輸入將頁面轉發為成功或失敗
  2. two.java:擴展ActionForm class ,具有getter和setters方法

我有3個jsp文件:

  1. index.jsp:歡迎頁面並詢問用戶名組合
  2. success.jsp:如果組合正確,則調用
  3. failure.jsp:如果組合為false則調用

我有2個xml文件:

  1. web.xml: DD
  2. struts-config.xml: Struts配置文件

我理解web.xml是如何工作的。 我唯一的疑問是,首先從struts.xml調用one.java /two.java中的哪一個?

我試圖調試並發現ActionForm類,即two.java調用two.java ,然后將值返回給Actionone.java

但是Action類應該首先執行,然后是動作形式嗎? 我的意思是這就是MVC架構所遵循的。

請解釋。 鏈接到非常詳細的工作流程將非常有用。

Action之前調用ActionForm類並不奇怪 - 在調用Struts動作方法之前,Struts表單應該填充用戶的數據,其中任何一個都有4個參數:

ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response

第二個 - ActionForm - 應該准備好允許最遠的數據處理。 我剛剛找到了很好的序列圖來說明所有Struts生命周期階段:

在此輸入圖像描述

簡而言之:

  1. 獲得客戶端請求后,Struts前端控制器使用struts-config.xml調用RequestProcessor以找出適當的操作和表單
  2. RequestProcessor獲取Struts表單對象(或者如果它不存在則創建它),填充請求中的數據,啟動驗證(如果存在)並調用適當的Struts操作。
  3. Struts動作執行所有必要的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM