- 在web應用程序啓動的時候加載並初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到配置對象中。
- 例如Action的映射信息存放到ActonMapping對象中,當ActionServlet接受到一個客戶請求時,檢索和用戶請求匹配的ActionMapping實例,
- 如果不存在,就返回用戶請求路經無效的信息,如果ActonForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中。
- 根據配置信息決定是否需要表單驗證,如果需要驗證,就會調用ActionForm的validate()方法。如果actionForm的validate()方法返回null或返回一個不包含
- ActionMessage的actionErrors對象,就表示表單驗證成功(如果ActionForm的validate()方法包含一個或多個ActionMessage的ActionErrors對象,就表示驗證表單失敗
- 此時ActionServlet直接把請求轉發給用戶提交表單JSP組件。在這種情況下不會創建ActionServlet對象並不會調用Action的execute()方法)。
- 。ActionServlet根據ActionMapping實例包含的映射信息決定將請求轉發給那個Action,如果相應的Action不存
- 在的話,就會先創建這個實例,然後調用Action的execute()方法。Action的execute()方法返回一個ActionForward對象,ActionServlet再把客戶請求轉發給ActionForward
- 對象指向的JSP組件。ActionForward對象指向的JSP組件生成動態網頁,返回給客戶。