熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

五步搞定Spring整合Strus

2013-11-23 20:06:15  來源: Java開源技術 

   項目需要有Struts包和Spring的core aop web 三個包(注意不是Spring自己的Web MVC) 將Spring整合Strus具體的 classpath 文件如下所示

  


    ﹤?xml version= encoding=UTF?﹥  
    ﹤classpath﹥  
        ﹤classpathentry kind=src path=src/﹥  
        ﹤classpathentry kind=con path=orgeclipsejdtlaunchingJRE_CONTAINER/﹥  
        ﹤classpathentry kind=con path=reJEE_CONTAINER/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/antlrjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/beanutilsjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/digesterjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/fileuploadjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/loggingjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/validatorjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/jakartaorojar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/strutsjar/﹥  
        ﹤classpathentry kind=lib path=WebRoot/WEBINF/lib/mysqlconnectorjavabinjar/﹥  
        ﹤classpathentry kind=con path=MYECLIPSE_SPRING_CORE/﹥  
        ﹤classpathentry kind=con path=MYECLIPSE_SPRING_AOP/﹥  
        ﹤classpathentry kind=con path=MYECLIPSE_SPRING_WEB/﹥  
        ﹤classpathentry kind=output path=WebRoot/WEBINF/classes/﹥  
    ﹤/classpath﹥

   對Struts 配置文件做修改加入Spring 托管功能

  創建 Spring 配置文件將文件放到src 目錄下文件名稱為 applicationContextxml 編譯後放到WEBINF/classes/ 下

  配置strutsconfigxml文件添加 spring的插件 位置在 strutsconfig 文件的最末尾

  

  <plugin className=orgspringframeworkwebstrutsContextLoaderPlugIn>
<setproperty property=contextConfigLocation
value=/WEBINF/classes/applicationContextxml />
plugin>

   修改 Struts 的 strutsconfigxml 中的Action配置原來的代碼

  

  <action
attribute=loginForm
input=/loginjsp
name=loginForm
path=/login
scope=request
validate=true
type=comteststrutsactionLoginAction />

  改變後的代碼

  

  <action
attribute=loginForm
input=/loginjsp
name=loginForm
path=/login
scope=request
validate=true
type=orgspringframeworkwebstrutsDelegatingActionProxy />

  type 部份為修改內容 這裡將使用spring的代理器來對Action進行控制 當提交到/logindo是將控制權交給了spring然後由spring來把它轉回到struts的Action

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

  

  xml version= encoding=UTF?>
>

  <beans>
<bean name=/login class=comteststrutsactionLoginAction>bean>

  beans>

  Spring 通過 orgspringframeworkwebstrutsDelegatingActionProxy 這個類 然後根據 Struts 配置文件中的 和 Spring 配置文件中的 來將 Spring 管理下的 Struts Action 類和提交的路徑匹配起來 這些就是關於轉交控制權的配置內容

  實踐的過程中發現必須把 singleton=false去掉才行 否則就會無法初始化 Spring 框架 不知道具體的原因是什麼

  既然這個 Struts的Action 已經通過 Spring 來初始化 所以就可以加入依賴注入 整合Hibernate 的功能了 例如典型的情況

  

  comteststrutsactionLoginAction

  private UserManager userManager;

  public UserManager getUserManager()
public void setUserManager(UserManager userMgmr)

  public ActionForward execute(ActionMapping mapping
ActionForm form
    HttpServletRequest request HttpServletResponse response) {
    Systemoutprintln(userManager= + getUserManager());
    getUserManager()someBusinessMethods();
   
}

  然後就可以配置

  

  <bean name=/login class=comteststrutsactionLoginAction>
  <property name=userManager>
   <ref bean=userManagerBean />
  property>
bean>

  <bean id=userManagerBean class=managerUserManager />

  同理 Spring整合Hibernate 和沒Struts 的時候一樣 也可以在這個文件中進行配置即可

   Spring整合Strus最後一步 測試 只要能打印出來 userManager 不為空 就說明整合成功了 如果出現 action servlet 不可用的錯誤 一般都是 Spring 配置文件出錯導致的


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27938.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.