精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實例說明Struts和Spring如何集成

開發(fā) 后端
本文用實例說明Struts和Spring如何集成,包括加載應(yīng)用的context和使用Spring的ActionSupport類。

本文想通過一個簡單的實例闡述如何集成Struts和Spring。

1.Struts和Spring

Struts 代表了MVC第二類架構(gòu)的實現(xiàn),在Struts中最重要的組件是ActionServlet,Action和 ActionForm 子類,ActionServlet 代表controller,他基于配置文件接受請求和把這些請求轉(zhuǎn)發(fā)到相應(yīng)的ActionForm和Action子類。 ActionForm把用戶輸入的數(shù)據(jù)傳送到Action,Action調(diào)用商務(wù)層組件完成必要的操作,***提交到view。ActionServlet 使用一個配置文件(struts-config.xml)加載Action子類的定義用以接受用戶請求,基于請求URL, controller 找到一個action定義去接受這個請求,Struts構(gòu)件處理用戶請求, 檢查配置文件, 完成相應(yīng)的動作。

Spring是一種輕量級的容器,它使得使用一個外部XML配置文件非常容易綁定對象,每個對象能夠通過列出JavaBean 屬性得到一個依賴對象的指針,通過綁定XML配置文件使剩下的工作更加簡單。依賴注入(DI)是非常強大的功能,Spring支持可插拔的事務(wù)管理器,提供事物管理方式更多的選擇. 它集成了持久性的架構(gòu)同時也提供了一個統(tǒng)一的exception 分類,Spring也提供面向方面(AOP)編程的簡單機制。

2.Struts和Spring的集成

將Struts應(yīng)用集成到Spring框架可以采用多種方法,首先Spring明顯地被設(shè)計用于解決JEE的現(xiàn)實問題,如復(fù)雜性,性能低下,可測試性及其他;第二,Spring框架包括一個AOP實現(xiàn)讓你可以使用面向方面的程序設(shè)計技術(shù);第三, Spring 框架可以能夠非常容易地管理和協(xié)調(diào)Struts;和Struts類似,Spring也包含MVC 實現(xiàn),兩個架構(gòu)都有優(yōu)缺點,Struts是MVC最重要的架構(gòu),很多開發(fā)團隊學(xué)會了依靠Struts在規(guī)定時限內(nèi)開發(fā)出高質(zhì)量的軟件,因此開發(fā)團隊寧愿集成Spring的功能也不愿意轉(zhuǎn)到Spring MVC;好消息是Spring的結(jié)構(gòu)允許你集成Struts Web 框架、基于Spring的業(yè)務(wù)層和持久層,我們的方法是應(yīng)用Spring中的ActionSupport類去集成Struts。

3.加載應(yīng)用的context

首先我們需要使用Spring中的ContextLoaderPlugin為Struts ActionServlet去裝載Spring應(yīng)用的上下文,簡單在struts-config.xml 文件中增加plug-in,如下(1)所示:

  1. ﹤ ?xml version="1.0" encoding="ISO-8859-1" ?﹥  
  2. ﹤ !DOCTYPE struts-config PUBLIC  
  3. "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"  
  4. "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"﹥  
  5. ﹤ struts-config﹥  
  6. ﹤ form-beans﹥  
  7. ﹤ form-bean name="searchForm" 
  8. type="org.apache.struts.validator.DynaValidatorForm"﹥  
  9. ﹤ form-property name="cardno" type="java.lang.String"/﹥  
  10. ﹤ /form-bean﹥  
  11. ﹤ /form-beans﹥  
  12. ﹤ global-forwards type="org.apache.struts.action.ActionForward"﹥  
  13. ﹤ forward name="welcome" path="/welcome.do"/﹥  
  14. ﹤ forward name="searchEntry" path="/searchEntry.do"/﹥  
  15. ﹤ forward name="searchSubmit" path="/searchSubmit.do"/﹥  
  16. ﹤ /global-forwards﹥  
  17. ﹤ action-mappings﹥  
  18. ﹤ action path="/welcome" forward="/WEB-INF/pages/welcome.htm"/﹥  
  19. ﹤ action path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/﹥  
  20. ﹤ action path="/searchSubmit" 
  21. type=" com.infotek.Creditcard.actions.SearchSubmit" 
  22. input="/searchEntry.do" 
  23. validate="true" 
  24. name="searchForm"﹥  
  25. ﹤ forward name="success" path="/WEB-INF/pages/detail.jsp"/﹥  
  26. ﹤ forward name="failure" path="/WEB-INF/pages/search.jsp"/﹥  
  27. ﹤ /action﹥  
  28. ﹤ /action-mappings﹥  
  29. ﹤ message-resources parameter="ApplicationResources"/﹥  
  30. ﹤ plug-in className="org.apache.struts.validator.ValidatorPlugIn"﹥  
  31. ﹤ set-property property="pathnames" value="/WEB-INF/validator-rules.                                                              xml,/WEB-INF/validation.xml"/﹥  
  32. ﹤ /plug-in﹥  
  33. ﹤ plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"﹥ (1)  
  34. ﹤ set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/﹥  
  35. ﹤ /plug-in﹥  
  36. ﹤ /struts-config﹥﹤ struts-config﹤ forward  

4.使用Spring的ActionSupport類

要用Spring去集成Struts,創(chuàng)建一個Spring 上下文是必須要做的。 org.springframework.web.struts.ActionSupport 類提供一個 getWebApplicationContext() 方法非常容易地獲得Spring上下文,全部你需要去做的是從Spring的ActionSupport 代替Struts 中的Action類去延伸你的action,如下所示:

  1. package com.infotek.Creditcard.actions;  
  2. import java.io.IOException;  
  3. import javax.servlet.ServletException;  
  4. import javax.servlet.http.HttpServletRequest;  
  5. import javax.servlet.http.HttpServletResponse;  
  6. import org.apache.struts.action.ActionError;  
  7. import org.apache.struts.action.ActionErrors;  
  8. import org.apache.struts.action.ActionForm;  
  9. import org.apache.struts.action.ActionForward;  
  10. import org.apache.struts.action.ActionMapping;  
  11. import org.apache.struts.action.DynaActionForm;  
  12. import org.springframework.context.ApplicationContext;  
  13. import org.springframework.web.struts.ActionSupport;  
  14. import com. infotek.Creditcard.beans.Creditcard;  
  15. import com. infotek.Creditcard.business.CreditcardService;  
  16. public class SearchSubmit extends ActionSupport { |(1)  
  17. public ActionForward execute(ActionMapping mapping,ActionForm form,  
  18. HttpServletRequest request,HttpServletResponse response)  
  19. throws IOException, ServletException {  
  20. DynaActionForm searchForm = (DynaActionForm) form;  
  21. String isbn = (String) searchForm.get("cardno");  
  22. //the old fashion way  
  23. //CreditcardService creditcardService = new CreditcardServiceImpl();  
  24. ApplicationContext ctx = getWebApplicationContext(); |(2)  
  25. CreditcardService creditcardService =  
  26. (CreditcardService ) ctx.getBean("creditcardService"); |(3)  
  27. CreditCard creditard = CreditCardService.read(cardno.trim());  
  28. if (null == creditard) {  
  29. ActionErrors errors = new ActionErrors();  
  30. errors.add(ActionErrors.GLOBAL_ERROR,new ActionError ("message.notfound"));  
  31. saveErrors(request, errors);  
  32. return mapping.findForward("failure") ;  
  33. }  
  34. request.setAttribute("creditcard", creditcard);  
  35. return mapping.findForward("success");
  36. }  

在(1)中,我們通過延伸Spring ActionSupport 類而不是Struts Action 類創(chuàng)建了一個action;在(2)中,我們使用getWebApplicationContext()方法獲得一個 ApplicationContext;為了獲得商務(wù)服務(wù), 在(3)中,我們使用ApplicationContext去查找Spring bean;這個技術(shù)非常容易理解,不幸的是它把Struts的action和Spring framework綁定了,如果你想替換Spring你不得不重寫代碼,而且Struts的action不在Spring的控制之下, 遺憾的是這種方法無法獲得Spring AOP的好處。

5.結(jié)論

本文我們嘗試使用Spring的ActionSupport,ContextLoaderPlugIn去集成Struts,這是一種***效的和最簡單的方式,另外還可用Spring中的代理子類去代理Struts中的RequestProcessor和代理Struts的actions.

【編輯推薦】

  1. Spring AOP的一些概念
  2. acegi到Spring security的轉(zhuǎn)換方式
  3. Spring Framework的理解
  4. 解決Spring2.0向spring2.5遷移的問題
  5. Spring框架人氣暴漲
責(zé)任編輯:佚名 來源: 中國IT實驗室
相關(guān)推薦

2009-03-24 10:30:35

SpringStruts集成

2009-06-19 15:52:58

Struts和Spri

2009-06-26 17:15:44

Struts2

2009-06-30 17:03:49

Spring集成Str

2009-06-19 10:00:37

Struts和Spri

2009-07-17 17:45:56

iBATIS Spri

2009-06-19 15:28:03

SpringHibernate

2009-06-01 16:18:30

SpringJPA集成

2024-01-16 08:17:29

Mybatis驗證業(yè)務(wù)

2009-06-10 14:53:25

netbeans st實例

2009-09-24 09:18:18

2009-06-05 10:46:12

struts logilogic標簽

2009-06-23 13:21:26

JSF和Spring

2009-06-03 09:16:03

Hibernate工作原理使用

2009-06-08 16:52:00

2009-09-22 14:46:18

struts-spri

2020-07-14 11:00:12

Spring BootRedisJava

2009-06-05 11:01:23

struts mvcMVC工作原理

2009-07-20 16:51:59

Struts2.0+i

2009-07-15 13:11:25

ibatis動態(tài)查詢
點贊
收藏

51CTO技術(shù)棧公眾號

在线视频播放大全| 538国产视频| www.97视频| 岛国一区二区| 日本一区二区三区四区在线视频 | 日本熟妇人妻xxxxx| 亚洲色欧美另类| 日韩极品在线| 色婷婷久久综合| 国产精品日韩电影| 天天操天天舔天天射| 四虎国产精品成人免费影视| 一区二区三区av电影| 国语自产精品视频在线看一大j8| 免费国产黄色网址| 欧美女子与性| 日韩精品四区| 亚洲成a人在线观看| 久久久综合香蕉尹人综合网| 怡红院成永久免费人全部视频| 亚洲国产精品久久久天堂| 亚洲风情在线资源站| 久久久一本精品99久久精品| 91美女精品网站| 国产一级久久| 美女av一区二区三区| 免费a级黄色片| 日韩成人高清| 亚洲妇女屁股眼交7| 亚洲电影网站| 亚洲色图欧美视频| 国产伦精品一区二区三区免费| 91福利视频网| 在线免费观看亚洲视频| 巨胸喷奶水www久久久| 国产99久久久精品| 国产精品露脸自拍| 国产一级一片免费播放| 国产99久久精品一区二区300| 欧美精品精品一区| 日韩亚洲欧美精品| 高h震动喷水双性1v1| 日本一区二区三区视频| 精品国产污网站| 日本 片 成人 在线| p色视频免费在线观看| 成人综合婷婷国产精品久久| 欧美寡妇偷汉性猛交| 欧美激情视频二区| 免费欧美激情| 欧美一卡二卡在线| 奇米视频888| www.av在线| 2021国产精品久久精品| av在线亚洲男人的天堂| 激情网站在线观看| 亚洲免费毛片| 亚洲高清视频在线| 伊人久久大香线蕉精品| av小片在线| 国产精品人人做人人爽人人添| 国产精品久久九九| www夜片内射视频日韩精品成人| 久久国产精品区| 最近中文字幕日韩精品| 午夜精产品一区二区在线观看的| 牛牛影视一区二区三区免费看| 欧美日韩精品一区二区三区蜜桃| 亚欧在线免费观看| a成人v在线| 欧美日韩亚洲综合一区二区三区| 91精品免费视频| 久久久精品视频免费观看| 久久综合av| 91精品免费观看| 激情黄色小视频| 亚洲a成人v| 日韩一区二区视频| 女人扒开双腿让男人捅| 日韩精品一区国产| 亚洲精品在线观看视频| 亚洲图片综合网| 美女主播精品视频一二三四| 欧美性猛交xxxx乱大交| 777精品久无码人妻蜜桃| 日韩激情电影| 亚洲成人免费在线观看| 99在线精品免费视频| 91福利在线免费| 欧美韩国日本一区| 欧美一进一出视频| www精品国产| gogo大胆日本视频一区| 欧美精品一区二区三区在线看午夜 | 欧美激情精品久久久久久小说| 日韩免费电影| 欧美精品一级二级| 伊人色在线视频| y111111国产精品久久久| 日韩av在线精品| 谁有免费的黄色网址| 91精品综合| 91精品国产色综合| 在线免费观看av片| 成人性生交大合| 日本视频精品一区| 国产三区在线观看| 亚洲h精品动漫在线观看| 精品国产一二三四区| 成人在线黄色| 欧美不卡在线视频| 任你操这里只有精品| av久久网站| 日韩精品一区二区在线观看| www.久久久精品| 日本一区二区三区视频在线看| 亚洲国产精品va在线看黑人动漫| 亚洲一区视频在线播放| 国产偷久久久精品专区| 只有这里有精品| 欧洲一区二区三区| 亚洲精品老司机| 久久精品国产精品亚洲色婷婷| 国产福利一区二区三区在线播放| 日韩免费成人网| 天天操天天舔天天射| 在线免费观看欧美| 中文字幕精品一区久久久久 | 99re8在线精品视频免费播放| 亚洲国产一区二区三区在线播| 精灵使的剑舞无删减版在线观看| 亚洲成人自拍一区| 在线看免费毛片| 国产麻豆精品久久| 久久免费国产精品1| 国产又粗又长视频| 99国产精品久久久久| 无码毛片aaa在线| se69色成人网wwwsex| 亚洲精品资源美女情侣酒店| 国产在线视频你懂的| 国产剧情在线观看一区二区| 一本—道久久a久久精品蜜桃| av国产在线观看| 日韩欧美国产免费播放| 漂亮人妻被黑人久久精品| 国模吧视频一区| 国产精品欧美久久| segui88久久综合9999| 精品乱人伦小说| 国产无遮挡aaa片爽爽| 粉嫩一区二区三区性色av| 国产女教师bbwbbwbbw| 亚洲va欧美va人人爽成人影院| 欧美精品制服第一页| 午夜精品久久久久久久99热黄桃 | 成人一区二区在线观看| 久久久国内精品| 久久精品66| 欧美一区二区三区免费视| 久久国产精品高清一区二区三区| 色婷婷精品大视频在线蜜桃视频 | 精品国产乱码| 国产精品自产拍在线观看| 黄色精品免费看| 精品国内二区三区| 国产成人无码精品久在线观看| 91麻豆精品一区二区三区| 天堂一区二区三区| 日韩国产大片| 欧美肥婆姓交大片| 午夜av免费在线观看| 在线亚洲免费视频| 少妇高潮一区二区三区喷水| 国产精品一区二区你懂的| 女女百合国产免费网站| 精品久久对白| 国产精品流白浆视频| 中文字幕伦理免费在线视频| 亚洲高清久久网| 中文字幕日韩经典| 亚洲一二三区在线观看| 久久精品国产亚洲av久| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品自拍首页| 台湾佬中文娱乐久久久| 久久久精品电影| 91精品国产高清一区二区三密臀| 国产午夜精品一区二区| 日本黄色一级网站| 久久三级视频| 国产高潮呻吟久久久| 欧美顶级毛片在线播放| 国产在线不卡精品| 国产精品25p| 日韩中文字幕不卡视频| 亚洲精品久久久久久久久久| 亚洲视频一二区| youjizz.com国产| 日本成人在线一区| 日本成人黄色免费看| 豆花视频一区| 国产成人aa精品一区在线播放| 一色桃子av在线| 一区二区三区www| 韩国av免费在线| 欧美精品电影在线播放| 日本视频网站在线观看| 夜夜精品视频一区二区| 欧美老女人性生活视频| 97se亚洲国产综合自在线| 善良的小姨在线| 日韩精品一卡二卡三卡四卡无卡| 岛国大片在线播放| 亚洲中无吗在线| 午夜精品一区二区在线观看的 | 日本一区二区三区www| 99国产精品免费网站| 91免费欧美精品| 国模视频一区| 日本老师69xxx| 成av人片在线观看www| 欧美成人在线免费视频| 欧美jizz18hd性欧美| 中文字幕国产亚洲2019| 黄色视屏网站在线免费观看| 亚洲精品国产免费| 人人妻人人澡人人爽精品日本 | 亚洲一区免费视频| 97成人资源站| 中文字幕在线播放不卡一区| a资源在线观看| 亚洲国产高清aⅴ视频| 久久久久久国产精品无码| 91视频xxxx| 麻豆国产精品一区| 99久久婷婷国产综合精品| 师生出轨h灌满了1v1| 国产传媒一区在线| 中文字幕第三区| 免费人成精品欧美精品| 鲁一鲁一鲁一鲁一av| 理论片日本一区| 一级片视频免费观看| 久久97超碰国产精品超碰| 日韩中文字幕a| 免费成人在线观看| 亚洲一级免费观看| 久久精品国内一区二区三区| 韩国中文字幕av| 蜜桃视频免费观看一区| 亚洲精品www.| 国产一区激情在线| 黄色片免费网址| 粉嫩一区二区三区在线看| 亚洲精品第二页| 91麻豆123| 国产精品天天干| 国产精品传媒视频| 91精品国产闺蜜国产在线闺蜜| 国产99久久久国产精品 | 91一区一区三区| 国产精品无码在线| 久久精品日韩一区二区三区| 国产福利在线导航| 亚洲精品国产a久久久久久| 日本少妇激情视频| 色综合中文字幕| 在线观看国产精品视频| 日韩写真欧美这视频| 人人妻人人澡人人爽精品日本 | 欧美日韩亚洲综合一区二区三区| 国产又大又粗又长| 精品福利一区二区三区免费视频| 午夜影院在线视频| 中文字幕亚洲天堂| 性欧美video高清bbw| 7777精品久久久久久| 91精品影视| 亚洲影院色在线观看免费| 日韩一级电影| 一区二区视频在线观看| 国色天香一区二区| av视屏在线播放| 国产精品一级在线| 法国空姐电影在线观看| 亚洲精品乱码久久久久久| 99久久久久久久久| 日韩一级视频免费观看在线| 日韩有码电影| 欧美久久精品午夜青青大伊人| 松下纱荣子在线观看| 国产在线观看一区二区三区| 加勒比色综合久久久久久久久| 亚洲a∨一区二区三区| 激情六月综合| 看看黄色一级片| 久久久精品日韩欧美| 青娱乐在线视频免费观看| 日本道免费精品一区二区三区| 国产偷拍一区二区| 亚洲视频一区二区三区| 日本片在线观看| 国产日本欧美在线观看| 视频小说一区二区| 久久人妻无码一区二区| 秋霞午夜av一区二区三区| 免费日本黄色网址| 亚洲免费视频中文字幕| 免费在线不卡av| 亚洲国产中文字幕在线观看| 国产成人午夜| 国产日韩精品视频| 欧美禁忌电影| 国产精品网站免费| 国产白丝精品91爽爽久久| 女人黄色一级片| 色欧美日韩亚洲| 亚洲欧美日韩免费| 欧美人在线观看| 国产免费区一区二区三视频免费 | 欧美va天堂| 久久黄色片网站| 欧美国产1区2区| 综合网在线观看| 日韩精品视频免费专区在线播放| 黄页网站大全在线免费观看| 91美女片黄在线观| 国产精品国产一区| 色婷婷成人在线| 日本一区二区综合亚洲| 91porny九色| 亚洲天堂视频在线观看| 在线看片福利| 免费看污久久久| 欧美亚洲一区| 国精产品一区一区三区免费视频| 精品久久久久久久中文字幕| 欧美一区二区三区激情| 久久免费高清视频| 精品福利一区| 怡红院av亚洲一区二区三区h| 不卡的av电影在线观看| 日本一区二区三区四区五区| 亚洲成人精品久久久| 波多野结衣中文在线| 国产区二精品视| 国产亚洲精品bv在线观看| 国产精品探花一区二区在线观看| 天天综合色天天| 天堂成人在线| 在线亚洲午夜片av大片| 欧洲亚洲两性| 亚洲精品日韩在线观看| 久久se精品一区二区| 日韩欧美国产成人精品免费| 91精品黄色片免费大全| 亚洲妇熟xxxx妇色黄| 国产免费一区二区三区| 亚洲视频1区| 亚洲一级片在线播放| 7777精品伊人久久久大香线蕉超级流畅| 免费av在线播放| yellow视频在线观看一区二区| 黄色亚洲精品| 熟女丰满老熟女熟妇| 欧美视频一区二区三区在线观看| 天堂资源在线中文| 99视频免费观看蜜桃视频| 亚洲专区一区| 日本成人精品视频| 粉嫩老牛aⅴ一区二区三区| 青青草娱乐在线| 国产精品爽黄69| 狠狠干成人综合网| 国产特级黄色录像| 欧美高清视频在线高清观看mv色露露十八| h片在线播放| 久久久久免费网| 理论片日本一区| 日韩av免费网址| 最近免费中文字幕视频2019| 综合中文字幕| 国产免费视频传媒| 亚洲最色的网站| 国产毛片在线看| 99国产视频| 日本欧美一区二区三区| 久久高清无码视频| 一本色道久久88综合亚洲精品ⅰ | 日本成人在线一区| 久久精品波多野结衣| 国产一区二区av| 99国产精品免费网站| 日本激情视频在线播放| 亚洲成人av电影| 欧美激情办公室videoshd| 久久99热只有频精品91密拍| 激情综合色综合久久综合| 国产成人无码av|