精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

黑人巨大精品欧美一区二区一视频 | а√在线天堂官网| 国产盗摄一区二区三区| 午夜美女久久久久爽久久| 国产精品揄拍100视频| 精品欧美一区二区三区在线观看| 国产精品久久久久婷婷| 亚洲最大福利网| 亚洲一区欧美在线| 久久精品国产亚洲夜色av网站 | 国产精品国产自产拍高清av| 亚洲va欧美va国产综合久久| 国产午夜在线播放| 久久久久久久久久久久久久| 日韩大陆毛片av| 国产一区二区在线观看免费视频| 波多野结衣在线高清| 久久精品欧美一区二区三区麻豆| 成人免费看黄网站| 国产又黄又猛又粗又爽| 久久综合视频网| 精品无人国产偷自产在线| 天天影视综合色| 三级网站视频在在线播放| 26uuu国产电影一区二区| 成人精品一区二区三区电影黑人| 国产乡下妇女做爰视频| 久久一区二区中文字幕| 亚洲精品456在线播放狼人| 久久99999| 看黄在线观看| 一区二区三区中文字幕电影 | 99热这里只有精品1| 久久久久久久高潮| 国内精品久久久久久久| 亚洲国产精品免费在线观看| 精品国产123区| 日韩成人av在线播放| 亚洲精品一二三四| 亚洲色图图片| 欧美特级限制片免费在线观看| 日韩精品视频在线观看视频| free性欧美hd另类精品| 国产日韩欧美激情| 久久伊人资源站| 丰满熟妇乱又伦| 激情综合色播激情啊| 国产精品日韩在线| 国产性生活视频| 国产一级一区二区| 高清欧美性猛交xxxx| 国产97免费视频| 日韩免费在线| 综合久久五月天| 欧美a在线播放| 精品72久久久久中文字幕| 日韩电影免费观看中文字幕| 97精品人妻一区二区三区蜜桃| 精品国产乱码久久久久久樱花| 欧美三级日韩在线| 超碰在线97免费| 国产精品久久久久77777丨| 欧美综合一区二区三区| 青青在线免费观看视频| 亚洲成人人体| 欧美视频在线一区| 777一区二区| 日本一区二区三区中文字幕| 欧美日韩国产免费| 欧美国产日韩另类| 日本精品视频| 亚洲风情亚aⅴ在线发布| 中国xxxx性xxxx产国| 国产 日韩 欧美 综合 一区| 亚洲国产成人精品女人久久久| 中文字幕a在线观看| 久久香蕉网站| 亚洲三级 欧美三级| 国产黄色大片免费看| 手机亚洲手机国产手机日韩| 久久最新资源网| 久久久久久久久久久网| 亚洲清纯自拍| 国产精品电影在线观看| 91 中文字幕| 国产成人精品午夜视频免费| 好吊妞www.84com只有这里才有精品| 少妇人妻精品一区二区三区| 91网站在线观看视频| 欧美日韩免费精品| 日本不卡视频| 亚洲无线码一区二区三区| 国产精品va无码一区二区| 另类激情视频| 91精品国产综合久久久蜜臀图片| 激情av中文字幕| 欧美禁忌电影| 久久天天躁狠狠躁夜夜av| 在线看成人av| 亚洲精品tv久久久久久久久| 在线免费av片| 国产精品911| 精品一卡二卡三卡四卡日本乱码| 毛片在线播放网站| 亚洲视频在线观看一区| 蜜桃传媒一区二区三区| a屁视频一区二区三区四区| 欧美一区日韩一区| 久久久精品人妻无码专区| 日韩精品不卡一区二区| 欧美精品videosex极品1| 国产精品久久久久久人| 久久99国产精品麻豆| 国产精品久久久久久久小唯西川 | 日韩高清av一区二区三区| 亚洲精品视频网址| 1024日韩| 成人性教育视频在线观看| 亚洲欧美日韩免费| 亚洲男人天堂av| 韩国一区二区av| 99久久香蕉| 少妇高潮 亚洲精品| 国产一级精品视频| 国产精品自在欧美一区| 日韩精品不卡| 国产精品高颜值在线观看| 9191国产精品| 中文字幕第24页| 一区二区精品| 国产chinese精品一区二区| av在线免费观看网站| 欧美性xxxxx极品| 激情av中文字幕| 一区二区在线| 国产欧美精品一区二区| 天天在线女人的天堂视频| 一区二区久久久| 一级做a爱视频| 成人影视亚洲图片在线| 全亚洲最色的网站在线观看| 国产综合在线播放| 亚洲激情在线播放| www激情五月| 亚洲精品二区三区| 国产日韩中文在线| jizz亚洲| 欧美日韩在线播| jizz中文字幕| 日韩有码一区二区三区| 欧美成人免费在线| 亚洲天堂资源| 亚洲天堂av网| 成年人晚上看的视频| 国产香蕉久久精品综合网| 精品中文字幕av| 亚洲欧洲av| 日本精品视频在线播放| 欧洲毛片在线| 欧美怡红院视频| 五月天精品在线| 青青青爽久久午夜综合久久午夜| 日本一区不卡| 99re久久| www.日韩.com| 精品国产无码一区二区| 一区二区三区国产精品| 亚洲av人人澡人人爽人人夜夜| 最新成人av网站| 精品视频在线观看| 91看片一区| 在线亚洲欧美视频| 国产美女免费视频| 亚洲最新视频在线观看| 婷婷五月精品中文字幕| 国产精品普通话对白| 欧美亚洲另类在线一区二区三区| 天堂久久午夜av| 日韩在线视频导航| www.超碰在线.com| 精品久久久久久国产91| 婷婷色一区二区三区| 久久国产剧场电影| 人妻无码一区二区三区四区| 国产亚洲精品美女久久| 国产成人综合一区二区三区| 老司机在线看片网av| 日韩欧美中文字幕一区| 日本熟妇毛耸耸xxxxxx| 久久青草欧美一区二区三区| 性生活免费在线观看| 欧美久久成人| 欧美日本亚洲| 国产va免费精品观看精品| 久久久伊人日本| 成人影视在线播放| 日韩一级免费观看| 亚洲s码欧洲m码国产av| 自拍偷拍国产亚洲| 无套内谢大学处破女www小说| 蜜臀99久久精品久久久久久软件| 国产高清不卡无码视频| 国产a久久精品一区二区三区| 国产在线视频一区| 国产污视频在线播放| 日韩在线视频二区| 青青草在线免费观看| 7777精品伊人久久久大香线蕉| 国产真实乱人偷精品视频| 久久久久9999亚洲精品| 亚洲国产欧美日韩在线| 丝瓜av网站精品一区二区| 天堂av在线中文| 国产亚洲一区二区三区不卡| 96久久精品| 国产极品一区| 日本久久久久久久| 国内高清免费在线视频| 最近2019年日本中文免费字幕| 少妇一级淫片免费看| 欧美美女一区二区| 黄色片中文字幕| 亚洲大型综合色站| 午夜国产福利一区二区| 国产日韩精品一区二区三区| 国产精品入口麻豆| 国产一区二区三区四区五区美女 | 奇米色一区二区三区四区| 欧美成人高潮一二区在线看| 99成人在线视频| 任我爽在线视频精品一| 国产精品香蕉| 91精品黄色| 97久久精品一区二区三区的观看方式| 日本精品在线视频| 午夜影视一区二区三区| 久久久久日韩精品久久久男男| 麻豆免费在线观看| 中文字幕日韩高清| 酒色婷婷桃色成人免费av网| 日韩av一区二区在线| 亚洲第一天堂在线观看| 欧美妇女性影城| 在线视频播放大全| 欧美调教femdomvk| 国产91av在线播放| 欧美曰成人黄网| 国产乡下妇女三片| 在线观看成人免费视频| 午夜精品免费观看| 日本高清不卡aⅴ免费网站| 一级做a爰片久久毛片| 色综合久久中文综合久久97 | 欧美在线free| 中文字幕精品一区二区精| 欧美在线|欧美| 亚洲一区精品在线观看| 欧美日本高清视频在线观看| 亚洲视频一区二区三区四区| 欧美嫩在线观看| 国产美女免费视频| 欧美岛国在线观看| 秋霞视频一区二区| 日韩精品在线观| 黄色在线网站| 中文字幕欧美精品在线| 日本免费视频在线观看| 久久中文字幕在线视频| 欧美人与牲禽动交com| 国内伊人久久久久久网站视频| 国产精品25p| 国产国语刺激对白av不卡| 福利一区视频| 2014亚洲精品| 日本久久成人网| 日韩av一级大片| 99国产精品免费视频观看| 免费cad大片在线观看| 99视频精品免费观看| 国产黄色特级片| 久久精品国产精品亚洲精品| 伦伦影院午夜理论片| 成人短视频下载| 在线观看国产精品一区| 中文字幕制服丝袜成人av| 欧美日韩一级在线观看| 疯狂欧美牲乱大交777| 日本久久综合网| 9191国产精品| 男人天堂亚洲二区| 久久国产精品99国产精| 成人在线黄色电影| 国产精品免费小视频| 亚洲精品不卡在线观看| 免费在线成人av| 911精品美国片911久久久| 日本中文字幕亚洲| 日本网站在线观看一区二区三区| 性色av浪潮av| 久久久久亚洲综合| 三级黄色在线观看| 精品国产户外野外| 国产日韩欧美视频在线观看| 亚洲国产欧美在线成人app| www免费网站在线观看| 久久久影视精品| 亚洲在线资源| 欧美日韩大片一区二区三区| 欧美一区综合| 99视频在线视频| 不卡电影免费在线播放一区| 美女福利视频网| 精品国产91久久久| 国产欧美熟妇另类久久久| 亚洲欧美国内爽妇网| 欧美人与禽猛交乱配| 国产噜噜噜噜噜久久久久久久久| 国产成人夜色高潮福利影视 | 欧美天天视频| 超碰在线公开97| 91丨九色丨黑人外教| 午夜免费激情视频| 欧美图区在线视频| 免费在线超碰| 97在线免费观看| eeuss国产一区二区三区四区| 亚洲三区在线观看| 久久五月激情| 中文字幕丰满孑伦无码专区| 亚洲综合色噜噜狠狠| h片在线免费看| 精品国产欧美一区二区五十路| 你懂得影院夜精品a| 激情视频在线观看一区二区三区| 综合一区二区三区| 亚洲成人福利在线| 亚洲国产精品激情在线观看| 六月丁香在线视频| 精品福利在线导航| 尤物yw193can在线观看| 成人免费网站在线看| 欧美激情成人| 天天干天天综合| 国产精品人成在线观看免费 | 老司机久久99久久精品播放免费| 欧美一级片黄色| 天天操天天综合网| 亚洲欧美色视频| 奇米影视亚洲狠狠色| 亚洲丝袜美腿一区| 日韩欧美在线播放视频| 久久伊99综合婷婷久久伊| 成年人免费高清视频| 亚洲电影在线看| 久久uomeier| 色呦呦呦在线观看| 国产女同一区二区| 日韩精品中文字幕第1页| 毛片av免费在线观看| 久久免费看少妇高潮| 亚洲熟女综合色一区二区三区| 日韩毛片中文字幕| 国产精品粉嫩| 欧美一区1区三区3区公司| 老**午夜毛片一区二区三区 | 粉嫩高潮美女一区二区三区| 激情小说中文字幕| 亚洲精品国产精品国产自| 午夜影院在线观看国产主播| 欧美13一14另类| 麻豆久久一区二区| 国产精品 欧美激情| 精品国产伦一区二区三区观看方式| 51精品在线| 日本一区高清在线视频| 青青草国产成人99久久| 国产精品精品软件男同| 日韩欧美一区在线| 国产传媒在线观看| 五月婷婷一区| 国产精品 欧美精品| 国产大片中文字幕| 亚洲免费av片| 亚洲精品毛片| 精品国产av无码一区二区三区| 91香蕉视频mp4| 91国在线视频| 韩日欧美一区二区| 成人在线免费观看视频| 99国产精品免费视频| 欧美性黄网官网| bestiality新另类大全| 精品高清视频| 久久99精品国产| 欧美在线观看不卡| 久久九九国产精品怡红院| 日本亚洲不卡| 日韩av加勒比| 在线免费不卡电影| 麻豆av在线免费观看|