1、 Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml,Struts-config.xml集中了所有頁面的導航定義。對于大型的WEB項目,通過此配置文件即可迅速把握其脈絡,這不管是對于前期的開發(fā),還是后期的維護或升級都是大有裨益的。掌握Struts-config.xml是掌握Struts的關(guān)鍵所在。
2、每一個FormBean 都必須繼承ActionForm類,F(xiàn)ormBean是對頁面請求的封裝。即把HTTP request 封裝在一個對象中,需要說明的一點就是多個HTTP request可以共用一個FormBean,便于維護和重用。
3、FormBean的產(chǎn)生是為了提供數(shù)據(jù)給ActionBean,在ActionBean中可以取得FormBean中封裝的數(shù)據(jù),經(jīng)相應的邏輯處理后,調(diào)用業(yè)務方法完成相應業(yè)務要求。
Servlet的演變:在常規(guī)的 JSP,Servlet,JavaBean三層結(jié)構(gòu)中,JSP實現(xiàn)View的功能,Servlet實現(xiàn)Controller的功能,JavaBean實現(xiàn)Model的實現(xiàn)。
在Struts中,將常規(guī)情況下的Servlet拆分與ActionServlet、FormBean、ActionBean三個部分。ActionServlet配合Struts-config.xml,專職完成頁面導航,而不再負責具體的數(shù)據(jù)獲取與相應邏輯,這兩部分功能由FormBean和ActionBean來完成。
4、Action類是所有的Action的基類。其中定義的perform()方法完成對請求處理,并根據(jù)處理結(jié)果轉(zhuǎn)向到不同的頁面,然后顯示給用戶。Action類并不是Servlet,它不直接監(jiān)聽來自客戶端的請求。上面所提到的中心控制器ActionServlet是一個Servlet,客戶端發(fā)出的Action請求,由ActionServlet接收,根據(jù)struts-config.xml中的配置,傳入對應的mapping、form、request、response對象,并調(diào)用對應的Action類的perform()方法進行處理(在第一次調(diào)用時,實例化一個Action,隨后的請求將直接調(diào)用已存在的Action類進行處理,所以Action類是共享的,編程中注意處理并發(fā)問題)。
5、傳入的form對象中獲取username和password。這是ActionServlet在調(diào)用Action的perform()方法之前根據(jù)struts-config.xml中的配置及對應的Form中的屬性從前端請求抓取數(shù)據(jù),置入LogonForm對象的。
6、<global-forwards>
<forward name="success" path="/mainMenu.jsp"/>
</global-forwards>
這個Forward配置將對所有的Action都有效。但如果
7、struts-config.xml 文件里Acturn 屬性的 validate 字段屬性需要設置為 “true”
才能啟動 對應 Form 的 validate 方法啟動頁面檢測
8、strturs_config.xml 配置文件中<action> 的 scope 字段,用來指定 Action 的活動范 圍,默認的值是"session",所以一般我們將scope設置為"request"。 如果需要設置
為"session",則留心一下對應 Form Bean 的 reset() 方法還原 Form Bean 初始值;
9、怎樣制作 *_zh.properties 中文資源文件
使用 JAVA_HOME\bin\ 目錄下的 native2ascii 工具
先制作一個 ApplicationResources.properties文件里采用中文書寫信息
然后 命令行窗口鍵入
native2ascii -encoding gb2312 ApplicationResources.properties
ApplicationResources_zh.properties
10:要使得編譯過程不出錯,還必須將struts.jar文件放一份拷貝到/common/lib目錄中,并在環(huán)境變量中設置CLASSPATH 其值是/common/lib/struts.jar;配置好后就可以分別編譯entity、bussness及action目錄下的.java文件了。