![spring struts ref使用更好地處理動作_第1頁](http://file4.renrendoc.com/view/9d870380d76356416636f87508523d37/9d870380d76356416636f87508523d371.gif)
![spring struts ref使用更好地處理動作_第2頁](http://file4.renrendoc.com/view/9d870380d76356416636f87508523d37/9d870380d76356416636f87508523d372.gif)
![spring struts ref使用更好地處理動作_第3頁](http://file4.renrendoc.com/view/9d870380d76356416636f87508523d37/9d870380d76356416636f87508523d373.gif)
![spring struts ref使用更好地處理動作_第4頁](http://file4.renrendoc.com/view/9d870380d76356416636f87508523d37/9d870380d76356416636f87508523d374.gif)
![spring struts ref使用更好地處理動作_第5頁](http://file4.renrendoc.com/view/9d870380d76356416636f87508523d37/9d870380d76356416636f87508523d375.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
作者:GeorgeFranciscus出處:ibm2006-10-0708:00StrutsRecipesGeorgeFranciscusStruts——StrutsSpringStrutsRecipesGeorgeFranciscusStruts——Struts應(yīng)用程SpringGeorgeStrutsStrutsSpringbeans那樣。結(jié)果是一個增強的web框架,這個框架可以方便地利用SpringAOP的優(yōu)勢。您肯定已經(jīng)聽說過控制反轉(zhuǎn)(IOC)設(shè)計模式,因為很長一段時間以來一直在流傳關(guān)于它的信息。如果您在任何功能SpringStrutsSpring框架,您將親身體會到IOC模式的強大。將一個Struts應(yīng)用程序整合進Spring框架具有多方面的優(yōu)點。首先,Spring是為解決一些關(guān)于JEE的真實世界問題而設(shè)計的,比如復(fù)雜性、低性能和可測試性,等等。第二,Spring框架包含一個AOP實現(xiàn),允許您將面向方面技SpringStrutsStruts處理自己好。但是這是觀點問題,我演示三種將Struts應(yīng)用程序整合到Spring框架的方法后,具體由您自己決定使用哪一種。SpringSpringRodJohnsonJava?企業(yè)軟件開發(fā),并且提議很多企業(yè)難題都能夠通過戰(zhàn)略地使用IOC模式(也稱作依賴注入)來解決。當Rod和一個具有奉獻精神的開放源碼開發(fā)者團隊將這個理論應(yīng)用于Spring框架。簡言之,SpringXML配置文件方便地將對象連接在一起。每個對象都可以通過顯示一個JavaBean屬性收到一個到依賴對象的引用,留給您的簡單任務(wù)就只是在一個XML配置文件中把它們連接好。Spring框架能夠提供更多特性。Spring支持可插拔的事務(wù)管理器,可以給您的事SpringAOPStrutsStruts相似,SpringMVCStruts在MVC方面仍然是最好的。很多開發(fā)團隊已經(jīng)學(xué)會在時間緊迫的時候利用Struts作為構(gòu)造高品質(zhì)軟件的基礎(chǔ)。StrutsSpringSpringMVC。沒必要進行轉(zhuǎn)換對您來說是一個好消息。SpringStrutsWebSpring的業(yè)務(wù)和持久層。最后的結(jié)果就StrutsMVCSpring框架的方法。我將揭示每種方法的缺陷并且對比它們的優(yōu)點。一旦您了解到所有三種方法的作用,我將會向您展示一個令人興奮的應(yīng)用程序,這個程序使用的是這對Struts和Spring的理解。在處理各種不同情況的時候,這將給您提供一個廣闊的選擇范圍。方法如下:SpringActionSupportSpringDelegatingRequestProcessorStrutsStrutsActionSpringSpringContextLoaderPluginStrutsActionServletSpring應(yīng)用程序環(huán)境。就像添加任何其他插件一樣,簡單地向您的struts-config.xml文件添加該插件,如下所示:<plug-inclassName=<plug-inclassName=1.SpringSpringStrutsSpring的最直觀的方式。為了使它變得更簡單,Spring提供了一些幫助。為了方便地獲得Spring環(huán)境,org.springframework.web.struts.ActionSupport類提供了一個getWebApplicationContext()SpringActionSupportStrutsAction類擴展您的動作,如清單1所示:1.ActionSupportpackagepackageimportimportimportjavax.servlet.http.HttpServletRequest;importimportorg.apache.struts.action.ActionErrors;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importimportimportimportpublicclassSearchSubmitextendsActionSupportpublicexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletExceptionDynaActionFormsearchForm=(DynaActionForm)form;Stringisbn=(String)searchForm.get("isbn");//theoldfashion//BookServicebookService=newApplicationContextctx= BookServicebookService(BookService) Bookbook=if(null==book)ActionErrorserrors=newActionErrors();}request.setAttribute("book",book);}}(1)SpringActionSupportStruts的Action類進行擴展,創(chuàng)建了一個新的Action。在(2)處,我使用getWebApplicationContext()方法獲得一個ApplicationContext。為了獲得業(yè)務(wù)服務(wù),我使用在(2)處獲得的環(huán)境在(3)處查找一個Springbean。StrutsSpringSpring,StrutsSpringSpringAOP的優(yōu)勢。當使用多重獨立的Spring環(huán)境時,這種技術(shù)可能有用,但是在大多數(shù)情況下,這種方法不如另外兩種方法合適。2.將Spring從Struts動作中分離是一個更巧妙的設(shè)計選擇。分離的一種方法是使用org.springframework.web.struts.DelegatingRequestProcessorStrutsRequestProcessor處理程序,如清單2所示:2.SpringDelegatingRequestProcessor<?xml<?xmlversion="1.0"encoding="ISO-8859-1"<!DOCTYPEstruts-config"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN""/struts/dtds/struts-config_1_1.dtd"><form-beanname="searchForm" <controllercontrollerDelegatingRequestProcessorStrutsRequestProcessor。下一步是在我的Spring配置文件中注冊該動作,如清單3所示:3.Spring<!DOCTYPEbeansPUBLIC"-//SPRING//DTD<beanname="/searchSubmit"<property<ref(1)beanstruts-config動作映射名稱。SearchSubmit動作揭示了一個JavaBean屬性,允許Spring在運行時填充屬性,如清單4所示:4.JavaBeanStrutspackagepackageimportimportjavax.servlet.ServletException;importimportorg.apache.struts.action.Action;importorg.apache.struts.action.ActionError;importorg.apache.struts.action.ActionErrors;importorg.apache.struts.action.ActionForm;importimportimportimportpublicclassSearchSubmitextendsActionprivateBookServicebookService;publicBookServicegetBookService(){return}publicvoidsetBookService(BookServicebookService){|(1)this.bookService=bookService;}publicexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletExceptionDynaActionFormsearchForm=(DynaActionForm)StringStringisbn=(String)Bookbook=getBookService().read(isbn.trim());if(null==book)ActionErrorserrors=newActionErrors();saveErrors(request,errors);}request.setAttribute("book",book);}}在清單4中,您可以了解到如何創(chuàng)建Struts動作。在(1)處,我創(chuàng)建了一個JavaBean屬性。DelegatingRequestProcessorStrutsSpring管理,并且使您能夠利用Sping的動作管理框架的所有優(yōu)點。由于您的Struts動作注意不到Spring的存在,所以您不需要重寫您的Struts代碼就可以使用其他控制反轉(zhuǎn)容器來替換掉Spring。DelegatingRequestProcessor方法的確比第一種方法好,但是仍然存在一些問題。如果您使用一個不同的RequestProcessorSpringDelegatingRequestProcessor。添加的代碼會造成維護的麻煩并且將來StrutsRequestProcessor3.StrutSpringstruts-config動作映射中注冊一個代理來實SpringStrutsSpringJavaBean屬性,并為應(yīng)用諸如Spring的AOP攔截器之類的特性帶來了可能。5Action4struts-config有一些不同:清單5.Spring整合的委托方法<?xmlversion="1.0"encoding="ISO-8859-1"<!DOCTYPEstruts-config"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN""/struts/dtds/struts-config_1_1.dtd"><form-beanname="searchForm" type="org.springframework.web.struts.DelegatingActionProxy"|(1)5struts-config.xmlSpring代理類的名稱,而不是聲明動作的類名,如(1)處所示。DelegatingActionProxy類使用動作映射名稱查找Spring環(huán)境中的動作。這就是我們使用ContextLoaderPlugIn聲明的環(huán)境。StrutsSpringbean6bean的名稱屬性(在這個例子中是"/searchSubmit")簡單地創(chuàng)建了一個bean。這個動作的JavaBean屬性像任何Springbean一樣被填充:6.SpringStruts<!DOCTYPEbeansPUBLIC"-//SPRING//DTD<beanname="/searchSubmit"<property<ref<ref動作委托解決方法是這三種方法中最好的。StrutsSpringSpring應(yīng)用程序中。RequestProcessor的改變不會影響它,并且它可以利用SpringAOP特性的優(yōu)點。SpringStrutsSpring給動作補充更強的活力。例SpringStruts動作時,<beaninit-method屬性被用于運行一個方法。類似地,在從容器中刪除bean之前,destroy-method屬性執(zhí)行一個方法。這些方法是管理昂貴對象的好辦法,它們以一種與Servlet生命周期相同的方式進行管理。前面提到過,通過將Struts動作委托給Spring框架而整合Struts和Spring的一個主要的優(yōu)點是:您可以將SpringAOPStrutsSpringStruts動作,您可以用最小的代價處理SpringStruts動作。為了7Struts7.packagepackageimportimportpublicclassLoggingInterceptorimplementsMethodBeforeAdvicepublicvoidbefore(Methodmethod,Object[]objects,Objecto)throws{System.out.println("logging}}這個攔截器非常簡單。before()方法在攔截點中每個方法之前運行。在本例中,它打印出一句話,其實它可以做您想做的任何事。下一步就是在Spring
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 喪葬協(xié)議書模板年
- 工程技術(shù)咨詢服務(wù)合同協(xié)議
- 煤炭貨物買賣運輸合同年
- 遼寧理工職業(yè)大學(xué)《解幾與線性代數(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年新能源技術(shù)戰(zhàn)略合作框架協(xié)議
- 房屋買賣合同1
- 吉林司法警官職業(yè)學(xué)院《夏變函數(shù)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 嘉興職業(yè)技術(shù)學(xué)院《數(shù)學(xué)能力提升》2023-2024學(xué)年第二學(xué)期期末試卷
- 鹽城工學(xué)院《群論基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貸款居間合同范文
- 全國住戶收支調(diào)查業(yè)務(wù)知識考試復(fù)習題庫(含答案)
- 高中英語新課標詞匯表(附詞組)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫附完整答案【有一套】
- 證券公司信用風險和操作風險管理理論和實踐中金公司
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項施工方案
- 儲能設(shè)備項目采購供應(yīng)質(zhì)量管理方案
評論
0/150
提交評論