自由飛翔

          我在仰望,java之上

          統計

          留言簿(2)

          我關注的blog

          閱讀排行榜

          評論排行榜

          spring2.0整合struts1(轉載)

          文章來源:http://hi.baidu.com/liuzhe041/blog/item/e12251dcf2ffe053ccbf1ad2.html


          spring 和struts整合 有3種方式,推薦用第三種。
          下面一一介紹,不管使用哪種方式,都需要在web.xml 中配置 spring的 監聽器

          Java代碼 
          1. <context-param>  
          2.         <param-name>contextConfigLocation</param-name>  
          3.         <param-value>/WEB-INF/applicationContext.xml</param-value>  
          4.     </context-param>  
          5.     <listener>  
          6.         <listener-class>  
          7.             org.springframework.web.context.ContextLoaderListener  
          8.         </listener-class>  
          9.     </listener>  

           

           

           

          第一種:使用 Spring 的 ActionSupport 類整合 Struts

           

           a.在struts-config.xml中


          Java代碼 
          1. <action path="/login" name="loginForm" scope="request"  
          2.                         type="com.demo.struts.actions.LoginAction"  
          3.                         input="/login.jsp">  
          4.                         <forward name="success" path="/welcome.jsp" />  
          5.                         <forward name="failure" path="/login.jsp" />  
          6. </action>  
          7.   
          8.    

           

           b.在applicationContext.xml中

           

          Xml代碼 
          1. <bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">  
          2.         <property name="sessionFactory">  
          3.             <ref local="sessionFactory" />  
          4.         </property>  
          5.     </bean>  
          6.   
          7. <bean name="/login" class="com.demo.struts.actions.LoginAction">  
          8.         <property name="userDAO">  
          9.             <ref local="userDAO" />  
          10.         </property>  
          11.     </bean>  
          12.     

           

          c.在action中 使用下面的方式得到bean

           

           

          Java代碼 
          1. UserDAO userDAO=(UserDAO)getWebApplicationContext().getBean("userDAO");  

           

           

          第二種:使用 Spring 的 DelegatingRequestProcessor 覆蓋 Struts 的 RequestProcessor

          a.在struts-config.xml中


          Java代碼 
          1. <action path="/login" name="loginForm" scope="request"  
          2.                                                input="/login.jsp">  
          3.                         <forward name="success" path="/welcome.jsp" />  
          4.                         <forward name="failure" path="/login.jsp" />  
          5. </action>  
          6.   
          7.    
          8. <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />  

           

           

           b.在applicationContext.xml中

           

          Xml代碼 
          1. <bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">  
          2.         <property name="sessionFactory">  
          3.             <ref local="sessionFactory" />  
          4.         </property>  
          5.     </bean>  
          6.   
          7. <bean name="/login" class="com.demo.struts.actions.LoginAction">  
          8.         <property name="userDAO">  
          9.             <ref local="userDAO" />  
          10.         </property>  
          11.     </bean>  

            

          c.在action中 使用下面的注入屬性的方式得到bean ,直接使用 userDAO.xxx 調用userDAO中的方法

           

          Java代碼 
          1. protected UserDAO userDAO;  
          2.   
          3.     Logger log = Logger.getLogger(this.getClass());  
          4.   
          5.     public UserDAO getUserDAO() {  
          6.         return userDAO;  
          7.     }  
          8.   
          9.     public void setUserDAO(UserDAO userDAO) {  
          10.         this.userDAO = userDAO;  
          11.     }  

           

           

          第三種:將 Struts Action 管理委托給 Spring 框架        

          a.在struts-config.xml中

          Java代碼 
          1. <action path="/login" name="loginForm" scope="request"  
          2.                         type="org.springframework.web.struts.DelegatingActionProxy"  
          3.                         input="/login.jsp">  
          4.                         <forward name="success" path="/welcome.jsp" />  
          5.                         <forward name="failure" path="/login.jsp" />  
          6.                 </action>  

           

           

           b.在applicationContext.xml中

           

          Xml代碼 
          1. <bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">  
          2.         <property name="sessionFactory">  
          3.             <ref local="sessionFactory" />  
          4.         </property>  
          5.     </bean>  
          6.   
          7. <bean name="/login" class="com.demo.struts.actions.LoginAction">  
          8.         <property name="userDAO">  
          9.             <ref local="userDAO" />  
          10.         </property>  
          11.     </bean>  

            

          c.在action中 使用下面的注入屬性的方式得到bean ,直接使用 userDAO.xxx 調用userDAO中的方法

           

          Java代碼 
          1. protected UserDAO userDAO;  
          2.   
          3.     Logger log = Logger.getLogger(this.getClass());  
          4.   
          5.     public UserDAO getUserDAO() {  
          6.         return userDAO;  
          7.     }  
          8.   
          9.     public void setUserDAO(UserDAO userDAO) {  
          10.         this.userDAO = userDAO;  
          11.     }  

           



          Gavin

          posted on 2012-03-16 10:14 GavinMiao 閱讀(292) 評論(0)  編輯  收藏 所屬分類: spring

          主站蜘蛛池模板: 田阳县| 玉环县| 彭州市| 清徐县| 泉州市| 绩溪县| 阳原县| 巩留县| 无极县| 广南县| 泰州市| 滦南县| 天长市| 遵义市| 叶城县| 泸西县| 廊坊市| 罗源县| 长汀县| 蒙山县| 贵溪市| 肥东县| 亚东县| 监利县| 蚌埠市| 嘉峪关市| 湄潭县| 勃利县| 舟曲县| 黄梅县| 南平市| 巴塘县| 溧水县| 武威市| 杭锦后旗| 饶阳县| 金山区| 周口市| 航空| 顺昌县| 望江县|