<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    shenang博客技術文檔


    理論不懂就實踐,實踐不會就學理論!

    posts - 35,comments - 55,trackbacks - 0

     

                       整合Springstruts學習筆記

    整合共有三種方法:

    使用 Spring ActionSupport類整合 Structs

    使用 Spring DelegatingRequestProcessor

    覆蓋 Struts RequestProcessor Struts Action管理委托給 Spring 框架

    前面二種很簡單,但不是最優化的,最優優化是第三種,有興趣的同志,可以到下面網址去看看

    http://www.ibm.com/developerworks/cn/java/j-sr2.html#N1008C

    下面,我將以一個實例簡單介紹一下二者的整合,以作為個人備忘

    對于像我一樣的新手,大家一起共同學習,有錯誤的地方,還望指教。

    具體步聚如下:

    1、首先是導入需要的包
     看了很多別人的文章,這里都寫得不太清楚,我覺得這是比較重要的一步,如果包導入不對,程序就高度不出來,所以,我比較看重這步,因為不是所有人都是很清楚這一步,對于像我這種新手還是有用的,呵呵。

    Spring的二個包:
    spring.jar
    struts2-spring-plugin-2.0.9.jar(其實這個包應該是struts的包哈)
    Struts的五個基本包
    commons-logging-1.1.jar
    freemarker-2.3.8.jar
    ognl.jar
    struts2-core-2.0.9.jar
    xwork-2.0.4.jar
    (當然,在我寫的這個小程序中,有一些struts包是用不到的!導入了包,下一步就開始了!)

    2、配置Spring監聽器.
    向web.xml加入下面語句:

    1 <listener>   
    2         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   
    3     </listener>   

    下面是完整的web.xml 為了方便大家調試,我給出全碼如下:

     

     1 <?xml version="1.0" encoding="UTF-8"?>   
     2 <web-app id="WebApp_ID" version="2.4"   
     3     xmlns="http://java.sun.com/xml/ns/j2ee"   
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
     6     <display-name>struts2tutorial</display-name>   
     7         
     8     <filter>   
     9         <filter-name>struts2</filter-name>   
    10         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>   
    11     </filter>   
    12         
    13     <filter-mapping>   
    14         <filter-name>struts2</filter-name>   
    15         <url-pattern>*.action</url-pattern>   
    16     </filter-mapping>   
    17         
    18     <welcome-file-list>   
    19         <welcome-file>index.jsp</welcome-file>   
    20     </welcome-file-list>   
    21         
    22     <listener>   
    23         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   
    24     </listener>   
    25         
    26 </web-app>


    3、利用Spring配置文件來注冊對象

    在原有的struts.xml文件加入

     

     1 <!DOCTYPE struts PUBLIC    
     2     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
     3     "http://struts.apache.org/dtds/struts-2.0.dtd">
     4 <struts>
     5     <!-- 下面這句表明對象是由spring負責產生的.加上這句后,struts會產生讓spring負責 
     6         產生bean,如果spring不能產生bean,則由struts自己產生.也可以在struts.properties 
     7         文件內定義這個屬性.-->
     8     <constant name="struts.objectFactory.spring.autoWire" value="type" />
     9     <constant name="struts.objectFactory" value="spring" />
    10     <!--
    11     <constant name="objectFactory" value="spring"></constant>
    12     -->
    13     <package name="struts2tutoial" extends="struts-default"
    14         namespace="/">
    15         <!-- 注意,現在action的class屬性不再是類的名字了,而是在spring中的bean的id 
    16             詳細信息請看下面的spring的bean配置文件applicationContext.xml -->
    17         <action name="HelloWorld" class="helloWorld">
    18             <result>/helloWorld.jsp</result>
    19         </action>
    20         <!-- Add your actions here -->
    21     </package>
    22 </struts>
    23 

    看到上文中的
    8     <constant name="struts.objectFactory.spring.autoWire" value="type" />
     9     <constant name="struts.objectFactory" value="spring" />
    10     <!--
    11     <constant name="objectFactory" value="spring"></constant>
    12     -->

    這個地方只需要注釋中的也行!

    4、配置applicationContext.xml

    注意,這個文件一定要放在WEB-INF下面,否則會出錯,默認情況下,容器會到WEB-INF目錄下面去尋找applicationContext.xml文件。如果我們想指定別的地方的配置文件或者指定多個配置文件,可以通過在web.xml文件中定義 context-param元素來指定,除非你在web.xml作如下配置

     1 <context-param>
     2 
     3     <param-name>contextConfigLocation</param-name>
     4  <!-- 下面指的是文件存放路徑,下面我還用了一個通配路徑,classpath下的所在形如:applicationContext-XX.xml都引入-->
     5     <param-value>
     6         /WEB-INF/applicationContext.xml,classpath:applicationContext-*.xml
     7     </param-value>
     8 
     9  </context-param>
    10 


    下面是我的appliccationContext.xml全碼:

    <?xml version="1.0" encoding="UTF-8"?>   
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">   
    <beans>   
        
    <bean id="helloWorld" class="com.tianji.test.HelloWorld"></bean>   
    </beans>
    <!--上面的解釋下:在前面說了,這個bean中的ID,必須與struts中的action指定的class值一樣,此bean中的class就是你要處理的action類,如果你在action時有傳值,則在此bean中加入形如:
    <property name="message">
        
    <value>i love you</value></property>
    形式的語句!
     
    -->


    5、寫一個action類
    HelloWord.java

     1 package com.tianji.test;    
     2 import com.opensymphony.xwork2.ActionSupport;    
     3 public class HelloWorld extends ActionSupport {    
     4    
     5     public static final String MESSAGE = "Struts is up and running ";    
     6    
     7     public String execute() throws Exception {    
     8         setMessage(MESSAGE);    
     9         return SUCCESS;    
    10     }    
    11    
    12     private String message;    
    13    
    14     public void setMessage(String message){    
    15         this.message = message;    
    16     }    
    17    
    18     public String getMessage() {    
    19         return message;    
    20     }    
    21 }   
    22 
    23 

    這個不用解釋哈!

    6、創建HelloWord.jsp

    1 <%@ taglib prefix="s" uri="/struts-tags" %>   
    2 <html>   
    3     <head>   
    4         <title>Hello World!</title>   
    5     </head>   
    6     <body>   
    7         <h2><s:property value="message" /></h2>   
    8     </body>   
    9 </html>  

    發布,運行服務器,在瀏覽器中打開:
    http://localhost:8080/love/HelloWorld.action

    注意修改上面紅色部份!

    結果:成功!

    Struts is up and running````````


     

     


     

    posted on 2009-03-25 16:11 重慶理工小子 閱讀(705) 評論(3)  編輯  收藏 所屬分類: Spring2Struts2技術整合

    FeedBack:
    # re: 整合Spring和struts學習筆記
    2009-03-25 17:54 | 學習的人
    好文章,我也在學習,謝謝樓主!我是第一個評論的,呵呵!  回復  更多評論
      
    # re: 整合Spring和struts學習筆記
    2009-03-25 17:55 | 關注
    謝謝,關注中!  回復  更多評論
      
    # re: 整合Spring和struts學習筆記
    2009-03-25 18:04 | 重慶理工小子
    @學習的人

    由于剛學,文章寫得不好!謝謝!

    大家一起進步!
      回復  更多評論
      
    主站蜘蛛池模板: 最近在线2018视频免费观看| 亚洲成a人片在线观看国产| 成人人观看的免费毛片| 亚洲国产综合人成综合网站| 日产亚洲一区二区三区| 国产成人 亚洲欧洲| 777爽死你无码免费看一二区 | 大地资源在线资源免费观看| 毛片免费全部播放一级| 久久精品国产精品亚洲蜜月| 另类小说亚洲色图| 免费不卡中文字幕在线| 国产91在线|亚洲| 一级成人a毛片免费播放| 亚洲AV伊人久久青青草原| 特级一级毛片免费看| 性做久久久久久久免费看| 亚洲综合无码一区二区| 3d成人免费动漫在线观看| 精品丝袜国产自在线拍亚洲| 无码视频免费一区二三区| 国产产在线精品亚洲AAVV| 亚洲日本中文字幕一区二区三区| 亚洲精品无码久久久久APP| 99视频全部免费精品全部四虎| 亚洲国产一二三精品无码| 视频免费1区二区三区| 搡女人真爽免费视频大全| 亚洲av成人一区二区三区在线播放| 1024免费福利永久观看网站| 亚洲欧美乱色情图片| 亚洲日韩在线第一页| 亚洲综合免费视频| 亚洲av无码专区青青草原| 亚洲码国产精品高潮在线| 国产精品午夜免费观看网站| 亚洲国产精品综合久久网络| 免费国产在线视频| 亚洲男人第一av网站| 2021精品国产品免费观看| 亚洲AV无码一区二区大桥未久|