偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

五步搞定Spring整合Strus

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

1. 項目需要有Struts包和Spring的core, aop, web 三個包(注意不是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. 對Struts 配置文件做修改加入Spring 托管功能.

創(chuàng)建 Spring 配置文件,將文件放到src 目錄下,文件名稱為 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配置。原來的代碼:

  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的代理器來對Action進(jìn)行控制. 當(dāng)提交到/login.do是將控制權(quán)交給了spring,然后由spring來把它轉(zhuǎn)回到struts的Action.

4. Spring整合Strus,需要配置spring來實例化上一步中被刪除的 Action 類.

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

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

既然這個 Struts的Action 已經(jīng)通過 Spring 來初始化, 所以就可以加入依賴注入, 整合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 和沒Struts 的時候一樣, 也可以在這個文件中進(jìn)行配置即可.

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

 

【編輯推薦】

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

2015-03-10 15:51:23

公有云亞馬遜CloudSeaCloudSearch

2025-05-14 07:06:36

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ù)中心

2014-08-11 10:10:39

linux

2021-07-26 09:35:26

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

2023-08-01 19:16:01

Spring編程瀏覽器

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

2010-10-22 11:31:53

SQL Server自

2024-08-19 14:04:00

2010-03-15 12:50:19

Python文件夾創(chuàng)建

2009-02-25 16:09:17

Windows優(yōu)化XPy
點(diǎn)贊
收藏

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