自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五步搞定Spring整合Strus

開(kāi)發(fā) 后端
本文向您介紹Spirng整合Strus的五個(gè)通用步驟,包括對(duì)配置文件的修改,Action的設(shè)置和測(cè)試等.

1. 項(xiàng)目需要有Struts包和Spring的core, aop, web 三個(gè)包(注意不是Spring自己的Web MVC), 將Spring整合Strus。具體的 .classpath 文件如下所示:

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥  
  2. ﹤classpath﹥  
  3.     ﹤classpathentry kind="src" path="src"/﹥  
  4.     ﹤classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/﹥  
  5.     ﹤classpathentry kind="con" path="com.genuitec.core.J2EE14_CONTAINER"/﹥  
  6.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr.jar"/﹥  
  7.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/beanutils.jar"/﹥  
  8.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/digester.jar"/﹥  
  9.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/fileupload.jar"/﹥  
  10.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/logging.jar"/﹥  
  11.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/validator.jar"/﹥  
  12.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro.jar"/﹥  
  13.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts.jar"/﹥  
  14.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java--bin.jar"/﹥  
  15.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_CORE"/﹥  
  16.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_AOP"/﹥  
  17.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_WEB"/﹥  
  18.     ﹤classpathentry kind="output" path="WebRoot/WEB-INF/classes"/﹥  
  19. ﹤/classpath﹥  

2. 對(duì)Struts 配置文件做修改加入Spring 托管功能.

創(chuàng)建 Spring 配置文件,將文件放到src 目錄下,文件名稱(chēng)為 applicationContext.xml, 編譯后放到WEB-INF/classes/ 下.

配置struts-config.xml文件,添加 spring的插件, 位置在 struts-config 文件的最末尾.

  1. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
  2. <set-property property="contextConfigLocation" 
  3. value="/WEB-INF/classes/applicationContext.xml" /> 
  4. plug-in>  

3. 修改 Struts 的 struts-config.xml 中的Action配置。原來(lái)的代碼:

  1. <action 
  2. attribute="loginForm" 
  3. input="/login.jsp" 
  4. name="loginForm" 
  5. path="/login" 
  6. scope="request" 
  7. validate="true" 
  8. type="com.test.struts.action.LoginAction" />  

改變后的代碼:

  1. <action 
  2. attribute="loginForm" 
  3. input="/login.jsp" 
  4. name="loginForm" 
  5. path="/login" 
  6. scope="request" 
  7. validate="true" 
  8. type="org.springframework.web.struts.DelegatingActionProxy" />  

type 部份為修改內(nèi)容, 這里將使用spring的代理器來(lái)對(duì)Action進(jìn)行控制. 當(dāng)提交到/login.do是將控制權(quán)交給了spring,然后由spring來(lái)把它轉(zhuǎn)回到struts的Action.

4. Spring整合Strus,需要配置spring來(lái)實(shí)例化上一步中被刪除的 Action 類(lèi).

  1. xml version="1.0" encoding="UTF-8"?> 
  2. >   
  3.  
  4. <beans> 
  5. <bean name="/login" class="com.test.struts.action.LoginAction">bean>   
  6.  
  7. beans>   

Spring 通過(guò) org.springframework.web.struts.DelegatingActionProxy 這個(gè)類(lèi), 然后根據(jù) Struts 配置文件中的 和 Spring 配置文件中的 來(lái)將 Spring 管理下的 Struts Action 類(lèi)和提交的路徑匹配起來(lái), 這些就是關(guān)于轉(zhuǎn)交控制權(quán)的配置內(nèi)容.

實(shí)踐的過(guò)程中發(fā)現(xiàn)必須把 singleton="false"去掉才行, 否則就會(huì)無(wú)法初始化 Spring 框架, 不知道具體的原因是什么.

既然這個(gè) Struts的Action 已經(jīng)通過(guò) Spring 來(lái)初始化, 所以就可以加入依賴(lài)注入, 整合Hibernate 的功能了. 例如典型的情況:

  1. com.test.struts.action.LoginAction   
  2.  
  3. private UserManager userManager;   
  4.  
  5. public UserManager getUserManager()...  
  6. public void setUserManager(UserManager userMgmr) ...   
  7.  
  8. public ActionForward execute(ActionMapping mapping, 
  9. ActionForm form,  
  10.     HttpServletRequest request, HttpServletResponse response) {  
  11.     System.out.println("userManager=" + getUserManager());  
  12.     getUserManager().someBusinessMethods();  
  13.     .....  
  14. }  

然后就可以配置:

  1. <bean name="/login" class="com.test.struts.action.LoginAction"> 
  2.   <property name="userManager"> 
  3.    <ref bean="userManagerBean" /> 
  4.   property> 
  5. bean>   
  6.  
  7. <bean id="userManagerBean" class="manager.UserManager" />   

同理 Spring整合Hibernate 和沒(méi)Struts 的時(shí)候一樣, 也可以在這個(gè)文件中進(jìn)行配置即可.

5. Spring整合Strus最后一步, 測(cè)試, 只要能打印出來(lái) userManager 不為空, 就說(shuō)明整合成功了. 如果出現(xiàn) 404 action servlet 不可用的錯(cuò)誤, 一般都是 Spring 配置文件出錯(cuò)導(dǎo)致的.

 

【編輯推薦】

  1. 實(shí)戰(zhàn)解析:如何整合iBatis和Spring
  2. Struts2.0+Springframework2.5+ibatis2.3完美整合實(shí)例
  3. WebWork與Spring集成方法淺析
  4. Spring集成Struts方法簡(jiǎn)述
  5. 淺談jBPM4與Spring整合的2種方式
責(zé)任編輯:佚名 來(lái)源: BlogJava
相關(guān)推薦

2015-03-10 15:51:23

公有云亞馬遜CloudSeaCloudSearch

2025-01-07 08:55:54

2009-08-18 14:15:12

2017-08-22 18:34:24

WinLicense軟件授權(quán)

2010-03-31 10:24:15

服務(wù)器虛擬化

2016-09-09 01:07:06

數(shù)據(jù)中心容量規(guī)劃數(shù)據(jù)中心

2023-08-01 19:16:01

Spring編程瀏覽器

2014-08-11 10:10:39

linux

2021-07-26 09:35:26

SQL數(shù)據(jù)庫(kù)優(yōu)化

2023-09-21 22:50:15

KubernetesSpring

2022-02-12 11:00:33

FTP網(wǎng)絡(luò)協(xié)議文件傳輸

2017-01-06 08:47:53

2025-04-08 03:00:00

SpringDocker容器

2009-12-11 13:31:31

策略路由配置

2009-11-05 10:01:26

Visual Stud

2009-06-18 15:24:08

Spring OSGi

2021-11-10 11:37:48

Spring整合 Mybatis

2016-12-14 09:03:34

springhibernate異常

2009-06-19 10:00:37

Struts和Spri

2010-10-22 11:31:53

SQL Server自
點(diǎn)贊
收藏

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