1. struts是一個按MVC模式設計的Web層框架,其實它就是一個大大的servlet,這個Servlet名為ActionServlet,或是ActionServlet的子類。我們可以在web.xml文件中將符合某種特征的所有請求交給這個Servlet處理,這個Servlet再參照一個配置文件(通常為/WEB-INF/struts-config.xml)將各個請求分別分配給不同的action去處理。
一個擴展知識點:struts的配置文件可以有多個,可以按模塊配置各自的配置文件,這樣可以防止配置文件的過度膨脹;
2. ActionServlet把請求交給action去處理之前,會將請求參數封裝成一個formbean對象(就是一個java類,這個類中的每個屬性對應一個請求參數),封裝成一個什么樣的formbean對象呢?看配置文件。
3.要說明的是, ActionServlet把formbean對象傳遞給action的execute方法之前,可能會調用formbean的validate方法進行校驗,只有校驗通過后才將這個formbean對象傳遞給action的execute方法,否則,它將返回一個錯誤頁面,這個錯誤頁面由input屬性指定,(看配置文件)作者為什么將這里命名為input屬性,而不是error屬性,我們后面結合實際的運行效果進行分析。
4.action執行完后要返回顯示的結果視圖,這個結果視圖是用一個ActionForward對象來表示的,actionforward對象通過struts-config.xml配置文件中的配置關聯到某個jsp頁面,因為程序中使用的是在struts-config.xml配置文件為jsp頁面設置的邏輯名,這樣可以實現action程序代碼與返回的jsp頁面名稱的解耦。