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

如何集成Struts和Spring

開發(fā) 后端
本文想通過一個(gè)簡(jiǎn)單的實(shí)例闡述如何集成Struts和Spring。

1.Struts和Spring

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

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

2.集成Struts和Spring

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

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

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

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

4.使用Spring的ActionSupport類

要用Spring去集成Struts,創(chuàng)建一個(gè)Spring 上下文是必須要做的。 org.springframework.web.struts.ActionSupport 類提供一個(gè) 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)建了一個(gè)action;在(2)中,我們使用getWebApplicationContext()方法獲得一個(gè) ApplicationContext;為了獲得商務(wù)服務(wù), 在(3)中,我們使用ApplicationContext去查找Spring bean;這個(gè)技術(shù)非常容易理解,不幸的是它把Struts的action和Spring framework綁定了,如果你想替換Spring你不得不重寫代碼,而且Struts的action不在Spring的控制之下, 遺憾的是這種方法無(wú)法獲得Spring AOP的好處。

5.結(jié)論

本文闡述如何集成Struts和Spring,我們嘗試使用Spring的 ActionSupport,ContextLoaderPlugIn去集成Struts,這是一種最高效的和最簡(jiǎn)單的方式,另外還可用Spring中的代理子類去代理Struts中的RequestProcessor和代理Struts的actions。

【編輯推薦】

  1. Spring框架的7個(gè)模塊
  2. 簡(jiǎn)述Spring JDBC的學(xué)習(xí)
  3. Spring 2.0和Spring AOP
  4. 整合Struts和Spring
  5. Spring2.0升級(jí)Spring2.0.7的變化
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-03-24 10:30:35

SpringStruts集成

2009-06-18 15:56:49

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-06-19 15:28:03

SpringHibernate

2024-01-16 08:17:29

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

2009-09-24 09:18:18

2009-06-23 13:21:26

JSF和Spring

2009-06-03 09:16:03

Hibernate工作原理使用

2020-07-14 11:00:12

Spring BootRedisJava

2009-09-22 14:46:18

struts-spri

2025-07-29 09:06:29

SpringAIMCP

2009-06-19 17:05:08

MVC框架Struts和Spri

2020-09-02 17:28:26

Spring Boot Redis集成

2009-09-14 19:31:36

Struts1和Str

2011-05-13 09:53:02

strutsAjax

2021-12-28 11:13:05

安全認(rèn)證 Spring Boot

2009-09-25 17:47:35

Struts+Hibe

2009-07-29 09:54:34

struts2和str
點(diǎn)贊
收藏

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

天堂中文资源在线观看| 欧美成人黄色网| 成人在线中文| 亚洲精品视频在线| 欧美欧美一区二区| 国产精品久久久久久久成人午夜| 国产精品大片| 亚洲最大中文字幕| 久久久久亚洲AV成人网人人小说| 欧美色999| 一区二区三区不卡视频| 欧美日韩综合网| 国产日韩欧美一区二区东京热 | 欧美午夜小视频| 国产精品一二三区视频| 国产98色在线|日韩| 国产成人综合亚洲| 久久精品国产亚洲AV无码男同| 久久99国产精一区二区三区| 欧美成人精精品一区二区频| 天堂一区在线观看| 三级在线观看视频| 伊人婷婷欧美激情| 亚洲一区二区自拍偷拍| 深夜福利视频在线免费观看| 国产一区二区福利| 国产成人精品免高潮费视频| 国产主播在线播放| 久久精品亚洲人成影院| 尤物九九久久国产精品的特点| 日本一区二区在线免费观看| 久久久久久久久成人| 在线看国产一区二区| 欧美综合在线播放| 黄色美女视频在线观看| 玉米视频成人免费看| 亚洲精品成人三区| 春暖花开成人亚洲区| 久久一二三国产| 韩国成人一区| 秋霞av鲁丝片一区二区| 国产不卡视频一区| 91福利视频导航| 国产精品一区二区av白丝下载| 日韩电影在线一区二区三区| 国产91在线播放精品91| 五月天婷婷激情| 国产精品亚洲综合久久| 91精品国产高清自在线看超| 黄色小视频在线免费看| 红桃视频欧美| 97精品国产97久久久久久春色| 久久久久久久久久久97| 亚洲无线视频| 97久久久久久| 毛片基地在线观看| 视频一区二区三区入口| 国产精品夫妻激情| 中文字幕男人天堂| 精品一区二区综合| 91色精品视频在线| www.四虎在线观看| 北条麻妃国产九九精品视频| 久久精品ww人人做人人爽| 天天操天天射天天舔| 99久久er热在这里只有精品15 | 人妻视频一区二区三区| 99麻豆久久久国产精品免费优播| 国产一级二级三级精品| 亚洲欧洲精品视频| 国产午夜精品理论片a级大结局| 日韩激情视频| 免费**毛片在线| 一区二区三区免费在线观看| 成人精品视频在线播放| 国产传媒在线| 91国在线观看| 精品亚洲视频在线| 国产精品白丝av嫩草影院| 国产视频欧美视频| 少妇愉情理伦三级| 欧美啪啪一区| 欧美一区二区.| 亚洲天堂网在线观看视频| 国产精一区二区三区| 韩国成人动漫在线观看| 国产理论电影在线观看| 一区二区三区在线视频观看| 黄色免费福利视频| а√天堂资源国产精品| 精品嫩草影院久久| 无码h肉动漫在线观看| 香蕉精品视频在线观看| 97精品国产97久久久久久| 日韩欧美国产另类| 国产精品1区2区| 欧美日韩精品一区| 色呦呦网站在线观看| 色综合久久综合网欧美综合网| 亚洲午夜激情影院| 色天下一区二区三区| 色偷偷888欧美精品久久久| 精品视频久久久久| 蜜臀99久久精品久久久久久软件| 国产一区福利视频| 91福利在线视频| 五月婷婷另类国产| 国产一级片自拍| 全国精品免费看| 美女av一区二区| 最新黄色网址在线观看| bt欧美亚洲午夜电影天堂| 亚洲国产精品女人| 色猫猫成人app| 亚洲国产精品推荐| 永久免费看黄网站| 美女一区二区久久| 免费亚洲精品视频| 毛片大全在线观看| 这里只有精品电影| 一级在线观看视频| 六月婷婷一区| 国产视色精品亚洲一区二区| 菠萝菠萝蜜在线视频免费观看| 日本精品视频一区二区三区| 波多野结衣视频播放| 欧美激情五月| 91免费高清视频| 国产精品麻豆一区二区三区 | aⅴ在线免费观看| eeuss国产一区二区三区四区| 日韩视频免费在线| 在线观看黄色国产| 国产三级三级三级精品8ⅰ区| 日韩免费视频播放| 久久影院资源站| 高清一区二区三区四区五区| 亚洲国产成人一区二区 | 91麻豆天美传媒在线| 久久亚洲人体| 在线观看亚洲视频| 真实新婚偷拍xxxxx| 国产欧美精品日韩区二区麻豆天美| 国产91对白刺激露脸在线观看| 国产成人av毛片| 久久久免费av| 亚洲第一大网站| 亚洲一二三四久久| 在线免费看黄色片| 在线亚洲精品| 欧美日韩一区二区三区免费| 朝桐光一区二区| 国产亚洲精品美女久久久久| 国产成人自拍偷拍| 中文av字幕一区| 亚洲无在线观看| 亚洲午夜精品一区二区国产| 999在线观看免费大全电视剧| 宅男在线观看免费高清网站| 日韩欧美高清一区| 在线免费观看毛片| 91麻豆免费观看| 无码少妇一区二区三区芒果| 欧美精品尤物在线观看| 成人国产在线视频| 亚洲精品天堂| 日韩电影中文字幕一区| 蜜臀尤物一区二区三区直播| 国产精品久久久久久亚洲伦| а 天堂 在线| 亚洲美女网站| 日本成人三级| www一区二区三区| 久久久久久久久久久久久久久久久久av | 日韩av高清| **精品中文字幕一区二区三区| 毛片精品免费在线观看| 五月婷婷激情在线| 欧美性猛交xxxxxx富婆| 老女人性淫交视频| 26uuu色噜噜精品一区| 日韩一区二区三区久久| 国内精品亚洲| 日韩av电影免费在线观看| 国产成年精品| 欧美亚洲成人网| 日韩美女网站| 亚洲高清一区二| 在线观看国产精品入口男同| 亚洲一区二区综合| 欧美偷拍一区二区三区| 国产乱淫av一区二区三区| 欧美亚洲另类色图| 亚洲电影在线一区二区三区| 精品无码久久久久久久动漫| 亚洲男人在线| 91av在线免费观看视频| 国产日产一区二区三区| 亚洲精品日韩在线| 精品人妻一区二区三区浪潮在线 | 亚洲这里只有精品| 999在线观看精品免费不卡网站| 亚洲一区三区电影在线观看| h视频久久久| 国产综合色香蕉精品| 成人午夜视屏| 欧美激情视频网址| 日本中文字幕在线播放| 亚洲美女动态图120秒| 国产夫妻自拍av| 欧美性受xxxx| 久久久久久久久久久影院| 一二三四区精品视频| 国产精品视频免费在线| 日韩欧美精品在线观看视频| 一区二区三区四区在线观看国产日韩| 久久久7777| 一区二区三区四区视频免费观看| 国产精品久久久久久久9999| av资源在线看片| 久久国产精品视频| 伦xxxx在线| 中日韩美女免费视频网址在线观看 | 国产欧美自拍| 国产精品wwwwww| 亚洲国产福利| 97香蕉超级碰碰久久免费软件| 2024最新电影在线免费观看| 色偷偷9999www| yiren22综合网成人| 亚洲图片欧美日产| 你懂的视频在线免费| 日韩成人av在线| 日韩专区第一页| 精品国产精品一区二区夜夜嗨 | 精品视频中文字幕| 全国男人的天堂网| 亚洲的天堂在线中文字幕| 黄色福利在线观看| 欧美tickling挠脚心丨vk| 国产男男gay体育生网站| 欧美日韩国产小视频在线观看| 中国女人真人一级毛片| 欧美色图在线观看| 在线观看国产精品视频| 欧美精品免费视频| 国产又黄又粗又硬| 欧美一区二区观看视频| 国产av精国产传媒| 精品国产凹凸成av人导航| 国产91免费看| 精品一区二区三区四区在线| 免费在线黄色影片| 在线看片第一页欧美| 91这里只有精品| 精品久久国产精品| 亚洲制服国产| 久久久久久久久久久人体| 大黄网站在线观看| 97成人精品视频在线观看| 欧美黑人粗大| 国产在线拍偷自揄拍精品| 国产在线不卡一区二区三区| 国产不卡一区二区三区在线观看| 国产香蕉精品| 日产精品一线二线三线芒果| 99久久久久国产精品| 一本大道东京热无码aⅴ| 136国产福利精品导航网址| 国产综合免费视频| 久草精品在线观看| yjizz视频| 国产欧美一区二区精品婷婷| 成人在线观看小视频| 亚洲午夜精品17c| 波多野结衣激情视频| 91精品国模一区二区三区| 免费的黄色av| 在线性视频日韩欧美| 天堂成人av| 欧美在线视频导航| 久久视频免费| 欧美午夜视频在线| 欧美日韩爆操| 免费看a级黄色片| 国产成人在线视频网址| 91成年人网站| 一区二区三区四区蜜桃| 久久人人爽人人爽人人片av免费| 欧美一级爆毛片| 人成在线免费视频| 久久国产精品首页| 欧美电影免费观看| 99影视tv| 日韩久久精品网| r级无码视频在线观看| 蜜臀av亚洲一区中文字幕| 在线天堂www在线国语对白| 国产精品理论片| 四虎成人永久免费视频| 日韩欧美综合一区| 番号集在线观看| 国模精品系列视频| 国产精品亚洲欧美日韩一区在线| 欧美极品色图| 亚洲天堂成人| 日日干日日操日日射| 久久久久久久久久久久久久久99 | 欧美另类一区二区三区| 日本韩国精品一区二区| 久久99国产综合精品女同| 亚洲a∨精品一区二区三区导航| 国产精品18毛片一区二区| 五月天综合网站| wwww.国产| 久久久久久久久久久电影| 激情五月色婷婷| 日韩欧美一级片| 国内精品不卡| 成人a在线观看| av在线不卡顿| 成人在线观看a| 久久这里只有精品视频网| 国产精品成人免费一区二区视频| 在线成人免费视频| 最新国产在线观看| 国产精品国产自产拍高清av水多| 欧美三级午夜理伦三级在线观看| 成人短视频在线观看免费| 激情图区综合网| 麻豆精品国产免费| 欧美日韩精品一区二区在线播放| 成人精品一区二区三区校园激情| 人妖精品videosex性欧美| 香蕉国产成人午夜av影院| 男人添女人下部高潮视频在观看| 福利视频网站一区二区三区| 欧美日韩在线视频免费| 日韩一区二区视频在线观看| 黄在线免费观看| 91久久久久久久久久久久久| 欧美好骚综合网| 欧洲在线免费视频| 亚洲免费在线视频一区 二区| 国产精品久久久久精| 久久精品这里热有精品| 久久免费福利| 国产精品久久久久9999爆乳| 成人精品视频网站| 日韩福利片在线观看| 亚洲精品久久久久中文字幕二区| 午夜不卡影院| 日韩精品在在线一区二区中文| 日韩黄色免费电影| 97精品在线播放| 欧美一区二区三区在线电影| 牛牛精品视频在线| 狠狠久久综合婷婷不卡| 男人天堂欧美日韩| 免费黄色在线网址| 91精品一区二区三区在线观看| 91高清在线观看视频| 国产一区二区免费电影| 免费日韩av片| 国产白丝一区二区三区 | 亚洲 自拍 另类 欧美 丝袜| 亚洲午夜精品网| 精品视频三区| 成人精品在线观看| 亚洲激情女人| 手机看片日韩av| 91精品国产乱码久久蜜臀| av中文资源在线资源免费观看| 欧美亚洲免费在线| 韩日欧美一区二区三区| 日本天堂网在线观看| 国产一区二区三区视频| 无码国模国产在线观看| 久久婷婷国产精品| 亚洲三级在线播放| 日韩亚洲视频在线观看| 国产一区视频在线| 亚洲视频免费| 影音先锋制服丝袜| 日韩欧美的一区| 成人日韩精品| 日韩激情视频一区二区| 国产三级精品三级| 丰满人妻一区二区三区免费视频 | 中国老头性行为xxxx| 久久久久久久久久久av| 日本一区二区三区视频| 美女伦理水蜜桃4| 欧美美女激情18p| 女厕盗摄一区二区三区| mm131午夜| 国产精品日韩成人| 三区在线观看| yellow视频在线观看一区二区| 奇米精品一区二区三区在线观看 |