struts1和spring有兩種整合的方法 一種是action和spring bean映射;一種是將action交給 spring初始化
第一種方式:訪問.do的URL->tomcat接收到request-〉到Struts配置文件裡找對應的action-〉找 到對應的action組件(Action那個類)-〉這個類對request進行一系列處理-〉調用spring提供的某個 service的注入實例的方法->由這個方法返回值-〉響應輸出
第二種方式:訪問.do的URL->tomcat接收到request-〉到Struts配置文件裡找對應的action-〉找 不到對應的action組件(Action那個類)-〉去spring配置文件裡找這個Action的映射,找到類-〉這個類 對request進行一系列處理-〉調用spring提供的某個service的注入實例的方法->由這個方法返回值- 〉響應輸出
(Struts1很久不用了,也許有差漏)
hibernate和spring的整合比較復雜,建議找人當面講
粗談Struts——從執行順序來看Struts
1.在web.xml中的配置
Struts在web.xml中的配置通常是自動生成的,這裡不用贅述。只有一點應該 說一下,那就是為ActionServlet這個servlet配置<load-on-startup>,而且應該讓它的數值小一 些,這樣能讓這個ActionServlet這個系統核心控制器早一點啟動。
2.用戶的請求
用戶提交表單時,表單的action屬性通常應以.do結束。當然,如果不寫的話,系統 也會默認(添加)以.do結束。以.do結束的原因是因為,在web.xml中我們通常都是配置攔截以.do結束的 請求。
3.定位Action
ActionServlet攔截到用戶的請求後,並不自己處理,它委托給 RequestProcessor進行處理。RequestProcessor使用請求URI與struts-config.xml文件中的Action的path 屬性進行對比,從而確定由哪個Action來處理這個請求。
4.填充ActionForm
確定下來由哪個Action來處理請求後,系統會去檢查Action的name屬性。然後,根據name屬性的值再在這個文件中去找對應的ActionForm來接受有戶提交的表單的內容。在ActionForm中通常有一個方法ActionErrors validate(ActionMapping mapping,HttpServletRequest request)需要重寫,該方法是用來檢驗用戶的輸入是否合法的。不過,現在Struts已經不在提倡這種驗證方法了。
5.對表單的驗證
借助於jakarta-oro.jar和commons-validator.jar的支持,Struts的校驗功能非常的強大。此種的驗證牽涉的內容很多,在此不做細說。如果,校驗出錯誤,則將錯誤送到Action的input屬性指定的頁面去處理。
6.Action處理
若校驗通過,則Action做一些業務邏輯上的處理,其實Action就是業務邏輯處理器。處理之後,把處理的結果放到request(或Session等)裡,然後轉發到全局轉發所指定的jsp頁面或在Action的配置時配置的局部轉發所指定的jsp頁面裡。
7.結果的顯示
在jsp頁面中對Action處理的結果進行輸出顯示。
查看本欄目