`

struts与spring如何整合(1)

阅读更多

一、struts与spring如何整合
线索从web.xml看起

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  5.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
  6.   
  7.     <display-name>app name</display-name>   
  8.   
  9.     <welcome-file-list>   
  10.         <welcome-file>/index.jsp</welcome-file>   
  11.     </welcome-file-list>   
  12.   
  13.     <listener>   
  14.         <listener-class>com.ramix.common.util.InitPlatformLoader</listener-class>   
  15.     </listener>   
  16.   
  17.     <context-param>   
  18.         <param-name>contextConfigLocation</param-name>   
  19.         <param-value>   
  20.             /WEB-INF/spring/*.spring.xml   
  21.         </param-value>   
  22.     </context-param>   
  23.   
  24.     <!-- Spring的过滤器 -->   
  25.     <filter>   
  26.         <filter-name>OpenSessionFilter</filter-name>   
  27.         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>   
  28.         <init-param>   
  29.             <param-name>singleSession</param-name>   
  30.             <param-value>true</param-value>   
  31.         </init-param>   
  32.     </filter>   
  33.     <!-- 编码转换过滤器 -->   
  34.     <filter>   
  35.         <filter-name>encodingFilter</filter-name>   
  36.         <filter-class>com.ramix.common.webapp.filter.EncodingFilter</filter-class>   
  37.     </filter>   
  38.     <!--sitemesh过滤器-->   
  39.     <filter>   
  40.         <filter-name>sitemesh</filter-name>   
  41.         <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>   
  42.         <init-param>   
  43.             <param-name>configFile</param-name>   
  44.             <param-value>/WEB-INF/classes/sitemesh.xml</param-value>   
  45.         </init-param>   
  46.     </filter>   
  47.     <!--session-->   
  48.     <filter-mapping>   
  49.         <filter-name>OpenSessionFilter</filter-name>   
  50.         <url-pattern>*.do</url-pattern>   
  51.     </filter-mapping>   
  52.     <!--encode-->   
  53.     <filter-mapping>   
  54.         <filter-name>encodingFilter</filter-name>   
  55.         <url-pattern>*.do</url-pattern>   
  56.     </filter-mapping>   
  57.     <!--sitemesh过滤-->   
  58.     <filter-mapping>   
  59.         <filter-name>sitemesh</filter-name>   
  60.         <url-pattern>*.do</url-pattern>   
  61.     </filter-mapping>   
  62.   
  63.     <!-- struts 的配置 -->   
  64.     <servlet>   
  65.         <servlet-name>action</servlet-name>   
  66.         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>   
  67.         <init-param>   
  68.             <param-name>config</param-name>   
  69.             <param-value>   
  70.                 /WEB-INF/struts/struts-config.xml,   
  71.                 /WEB-INF/struts/action/fileupload-action-config.xml,   
  72.                 /WEB-INF/struts/action/demo-action-config.xml   
  73.             </param-value>   
  74.         </init-param>   
  75.         <load-on-startup>1</load-on-startup>   
  76.     </servlet>   
  77.     <servlet-mapping>   
  78.         <servlet-name>action</servlet-name>   
  79.         <url-pattern>*.do</url-pattern>   
  80.     </servlet-mapping>   
  81.     <!--showpic-->   
  82.     <servlet>   
  83.         <servlet-name>showphoto</servlet-name>   
  84.         <servlet-class>com.ramix.demo.webapp.servlet.ShowParentPicServlet</servlet-class>   
  85.         <init-param>   
  86.             <param-name>noimage</param-name>   
  87.             <param-value>/images/noimage.gif</param-value>   
  88.         </init-param>   
  89.     </servlet>   
  90.     <servlet-mapping>   
  91.         <servlet-name>showphoto</servlet-name>   
  92.         <url-pattern>/showphoto</url-pattern>   
  93.     </servlet-mapping>   
  94.     <!--cxf-->   
  95.     <servlet>   
  96.         <servlet-name>cxf</servlet-name>   
  97.         <servlet-class>   
  98.             org.apache.cxf.transport.servlet.CXFServlet   
  99.         </servlet-class>   
  100.         <load-on-startup>2</load-on-startup>   
  101.     </servlet>   
  102.     <servlet-mapping>   
  103.         <servlet-name>cxf</servlet-name>   
  104.         <url-pattern>/ws/*</url-pattern>   
  105.     </servlet-mapping>   
  106.   
  107.     <error-page>   
  108.         <error-code>404</error-code>   
  109.         <location>/WEB-INF/page/common/e404.jsp</location>   
  110.     </error-page>   
  111.     <error-page>   
  112.         <error-code>500</error-code>   
  113.         <location>/WEB-INF/page/common/e500.jsp</location>   
  114.     </error-page>   
  115. </web-app>  
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>app name</display-name>

    <welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>

    <listener>
        <listener-class>com.ramix.common.util.InitPlatformLoader</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/*.spring.xml
        </param-value>
    </context-param>

    <!-- Spring的过滤器 -->
    <filter>
        <filter-name>OpenSessionFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
        <init-param>
            <param-name>singleSession</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <!-- 编码转换过滤器 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>com.ramix.common.webapp.filter.EncodingFilter</filter-class>
    </filter>
    <!--sitemesh过滤器-->
    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
        <init-param>
            <param-name>configFile</param-name>
            <param-value>/WEB-INF/classes/sitemesh.xml</param-value>
        </init-param>
    </filter>
    <!--session-->
    <filter-mapping>
        <filter-name>OpenSessionFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>
    <!--encode-->
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>
    <!--sitemesh过滤-->
    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>

    <!-- struts 的配置 -->
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>
                /WEB-INF/struts/struts-config.xml,
                /WEB-INF/struts/action/fileupload-action-config.xml,
                /WEB-INF/struts/action/demo-action-config.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <!--showpic-->
    <servlet>
        <servlet-name>showphoto</servlet-name>
        <servlet-class>com.ramix.demo.webapp.servlet.ShowParentPicServlet</servlet-class>
        <init-param>
            <param-name>noimage</param-name>
            <param-value>/images/noimage.gif</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>showphoto</servlet-name>
        <url-pattern>/showphoto</url-pattern>
    </servlet-mapping>
    <!--cxf-->
    <servlet>
        <servlet-name>cxf</servlet-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>

    <error-page>
        <error-code>404</error-code>
        <location>/WEB-INF/page/common/e404.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/page/common/e500.jsp</location>
    </error-page>
</web-app>


这里我们要关注的是两个地方的配置文件
1、/WEB-INF/spring/*.spring.xml
2、/WEB-INF/struts/struts-config.xml,/WEB-INF/struts/action/fileupload-action-config.xml,/WEB-INF/struts/action/demo-action-config.xml

{1}中放置的配置文件是关于service层的配置
如:demo.spring.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"  
  3.     "http://www.springframework.org/dtd/spring-beans-2.0.dtd">   
  4.   
  5. <beans>   
  6.     <bean id="parentManager" parent="baseTxService">   
  7.         <property name="target">   
  8.             <bean class="com.ramix.demo.service.impl.ParentManagerImpl" autowire="byName">   
  9.                 <property name="childMgr" ref="childManager"/>   
  10.             </bean>   
  11.         </property>   
  12.     </bean>   
  13.   
  14.     <bean id="childManager" parent="baseTxService">   
  15.         <property name="target">   
  16.             <bean class="com.ramix.demo.service.impl.ChildManagerImpl" autowire="byName"/>   
  17.         </property>   
  18.     </bean>   
  19.   
  20.     <bean id="jdbcManager" parent="baseTxService">   
  21.         <property name="target">   
  22.             <bean class="com.ramix.demo.service.impl.JdbcManagerImpl" autowire="byName" parent="jdbcDao"/>   
  23.         </property>   
  24.     </bean>   
  25.   
  26. </beans>  
<?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="parentManager" parent="baseTxService">
		<property name="target">
			<bean class="com.ramix.demo.service.impl.ParentManagerImpl" autowire="byName">
				<property name="childMgr" ref="childManager"/>
			</bean>
		</property>
	</bean>

	<bean id="childManager" parent="baseTxService">
		<property name="target">
			<bean class="com.ramix.demo.service.impl.ChildManagerImpl" autowire="byName"/>
		</property>
	</bean>

	<bean id="jdbcManager" parent="baseTxService">
		<property name="target">
			<bean class="com.ramix.demo.service.impl.JdbcManagerImpl" autowire="byName" parent="jdbcDao"/>
		</property>
	</bean>

</beans>


{2}中放置的都是struts的配置文件
如:/WEB-INF/sturts/action/demo-action-config.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE struts-config PUBLIC   
  3.     "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"  
  4.     "http://struts.apache.org/dtds/struts-config_1_2.dtd">   
  5. <struts-config>   
  6.     <action-mappings>   
  7.         <action path="/demo/list"  
  8.                 type="com.ramix.demo.webapp.action.DemoListAction"  
  9.                 parameter="method"  
  10.                 scope="request"  
  11.                 name="globalForm">   
  12.             <forward name="view" path="/WEB-INF/page/demo/list.jsp"/>   
  13.         </action>   
  14.         <action path="/demo/create" forward="/WEB-INF/page/demo/create.jsp"/>   
  15.         <action path="/demo/save"  
  16.                 type="com.ramix.demo.webapp.action.DemoSaveAction"  
  17.                 parameter="method"  
  18.                 scope="request"  
  19.                 name="globalForm">   
  20.             <forward name="view" path="/demo/list.do"/>   
  21.         </action>   
  22.         <action path="/demo/client"  
  23.                 type="com.ramix.demo.webapp.action.DemoClientAction"  
  24.                 parameter="method"  
  25.                 scope="request"  
  26.                 name="globalForm">   
  27.             <forward name="view" path="/WEB-INF/page/demo/client.jsp"/>   
  28.         </action>   
  29.         <action path="/demo/mail" forward="/WEB-INF/page/demo/sendmail.jsp"/>   
  30.         <action path="/demo/send"  
  31.                 type="com.ramix.demo.webapp.action.DemoSendAction"  
  32.                 parameter="method"  
  33.                 scope="request"  
  34.                 name="globalForm"/>   
  35.   
  36.         <action path="/demo/child/create"  
  37.                 type="com.ramix.demo.webapp.action.DemoChildCreateAction"  
  38.                 parameter="method"  
  39.                 scope="request"  
  40.                 name="globalForm">   
  41.             <forward name="view" path="/WEB-INF/page/demo/child_create.jsp"/>   
  42.         </action>   
  43.         <action path="/demo/child/save"  
  44.                 type="com.ramix.demo.webapp.action.DemoChildSaveAction"  
  45.                 parameter="method"  
  46.                 scope="request"  
  47.                 name="globalForm"/>   
  48.         <action path="/demo/child/list"  
  49.                 type="com.ramix.demo.webapp.action.DemoChildListAction"  
  50.                 parameter="method"  
  51.                 scope="request"  
  52.                 name="globalForm">   
  53.             <forward name="view" path="/WEB-INF/page/demo/child_list.jsp"/>   
  54.         </action>   
  55.         <action path="/demo/cahce_list" forward="/WEB-INF/page/demo/cache.jsp"/>   
  56.         <action path="/demo/child/list/ajax" forward="/WEB-INF/page/demo/child_list_ajax.jsp"/>   
  57.         <action path="/demo/ajax/child/list"  
  58.                 type="com.ramix.demo.webapp.action.DemoAjaxChildListAction"  
  59.                 parameter="method"  
  60.                 scope="request"  
  61.                 name="globalForm">   
  62.             <forward name="view" path="/WEB-INF/page/demo/ajax_list.jsp"/>   
  63.         </action>   
  64.         <action path="/demo/test"  
  65.                 type="com.ramix.demo.webapp.action.DemoListAction"  
  66.                 parameter="method"  
  67.                 scope="request"  
  68.                 name="globalForm">   
  69.             <forward name="test" path="/WEB-INF/page/demo/test.jsp"/>   
  70.         </action>   
  71.            
  72.     </action-mappings>   
  73. </struts-config>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
	"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
	<action-mappings>
		<action path="/demo/list"
				type="com.ramix.demo.webapp.action.DemoListAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/WEB-INF/page/demo/list.jsp"/>
		</action>
		<action path="/demo/create" forward="/WEB-INF/page/demo/create.jsp"/>
		<action path="/demo/save"
				type="com.ramix.demo.webapp.action.DemoSaveAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/demo/list.do"/>
		</action>
		<action path="/demo/client"
				type="com.ramix.demo.webapp.action.DemoClientAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/WEB-INF/page/demo/client.jsp"/>
		</action>
		<action path="/demo/mail" forward="/WEB-INF/page/demo/sendmail.jsp"/>
		<action path="/demo/send"
				type="com.ramix.demo.webapp.action.DemoSendAction"
				parameter="method"
				scope="request"
				name="globalForm"/>

		<action path="/demo/child/create"
				type="com.ramix.demo.webapp.action.DemoChildCreateAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/WEB-INF/page/demo/child_create.jsp"/>
		</action>
		<action path="/demo/child/save"
				type="com.ramix.demo.webapp.action.DemoChildSaveAction"
				parameter="method"
				scope="request"
				name="globalForm"/>
		<action path="/demo/child/list"
				type="com.ramix.demo.webapp.action.DemoChildListAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/WEB-INF/page/demo/child_list.jsp"/>
		</action>
		<action path="/demo/cahce_list" forward="/WEB-INF/page/demo/cache.jsp"/>
		<action path="/demo/child/list/ajax" forward="/WEB-INF/page/demo/child_list_ajax.jsp"/>
		<action path="/demo/ajax/child/list"
				type="com.ramix.demo.webapp.action.DemoAjaxChildListAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="view" path="/WEB-INF/page/demo/ajax_list.jsp"/>
		</action>
		<action path="/demo/test"
				type="com.ramix.demo.webapp.action.DemoListAction"
				parameter="method"
				scope="request"
				name="globalForm">
			<forward name="test" path="/WEB-INF/page/demo/test.jsp"/>
		</action>
		
	</action-mappings>
</struts-config>


而衔接struts与spring的地方是在struts-config.xml中体现
/WEB-INF/struts/struts-config.xml:

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE struts-config PUBLIC   
  3.     "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"  
  4.     "http://struts.apache.org/dtds/struts-config_1_2.dtd">   
  5. <struts-config>   
  6.     <form-beans>   
  7.         <form-bean name="globalForm" type="org.apache.struts.action.DynaActionForm"/>   
  8.     </form-beans>   
  9.   
  10.     <global-forwards>   
  11.         <forward name="globalError" path="/WEB-INF/page/common/error.jsp"/>   
  12.         <forward name="globalSuccess" path="/WEB-INF/page/common/success.jsp"/>   
  13.     </global-forwards>   
  14.   
  15.     <!--    
  16.         利用了 <controller> 标记来用 DelegatingRequestProcessor 覆盖默认的 Struts RequestProcessor。   
  17.         下一步是在 Spring 配置文件中注册该动作   
  18.            
  19.         DelegatingRequestProcessor自动地配置属性。这种设计使 Struts 动作并不知道它正被 Spring 管理,并且使您能够利用 Sping 的动作管理框架的所有优点。   
  20.        
  21.         在请求转发给action之前,转发给Spring的Bean   
  22.      -->   
  23.     <controller>   
  24.         <set-property property="processorClass"  
  25.                       value="org.springframework.web.struts.DelegatingRequestProcessor"/>   
  26.     </controller>   
  27.   
  28.     <!--    
  29.     装载环境:需要使用 Spring 的 ContextLoaderPlugin 为 Struts 的 ActionServlet 装载 Spring 应用程序环境   
  30.      -->   
  31.     <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">   
  32.         <set-property property="contextConfigLocation"  
  33.                       value="/WEB-INF/struts/spring/demo-action.spring.xml"/>   
  34.     </plug-in>   
  35. </struts-config>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
    <form-beans>
        <form-bean name="globalForm" type="org.apache.struts.action.DynaActionForm"/>
    </form-beans>

    <global-forwards>
        <forward name="globalError" path="/WEB-INF/page/common/error.jsp"/>
        <forward name="globalSuccess" path="/WEB-INF/page/common/success.jsp"/>
    </global-forwards>

	<!-- 
		利用了 <controller> 标记来用 DelegatingRequestProcessor 覆盖默认的 Struts RequestProcessor。
		下一步是在 Spring 配置文件中注册该动作
		
		DelegatingRequestProcessor自动地配置属性。这种设计使 Struts 动作并不知道它正被 Spring 管理,并且使您能够利用 Sping 的动作管理框架的所有优点。
	
		在请求转发给action之前,转发给Spring的Bean
	 -->
    <controller>
        <set-property property="processorClass"
                      value="org.springframework.web.struts.DelegatingRequestProcessor"/>
    </controller>

	<!-- 
	装载环境:需要使用 Spring 的 ContextLoaderPlugin 为 Struts 的 ActionServlet 装载 Spring 应用程序环境
	 -->
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation"
                      value="/WEB-INF/struts/spring/demo-action.spring.xml"/>
    </plug-in>
</struts-config>


要知道Struts转发的一个重要类是RequestProcessor,而现在通过对controller的设置将转发类被org.springframework.web.struts.DelegatingRequestProcessor替换,
而org.springframework.web.struts.DelegatingRequestProcessor只是封装了RequestProcessor,这样struts的转发就由spring来处理了。

 

分享到:
评论

相关推荐

    ssh整和技术struts与hibernate整合,struts与spring整合,hibernate与spring整合,struts,hibernate,sp

    Struts技术资料 hibernate技术资料 spring技术资料 ssh整合技术(struts与hibernate整合,struts与spring整合,hibernate与spring整合,struts,hibernate,spring整合)

    struts1 spring ibatis整合项目源码

    struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码

    struts和spring整合(两种实现方法)

    用DelegatingRequestProcessor和DelegatingActionProxy两种方法实现struts和spring的整合,不同的地方就在struts-config.xml文件中,当前文件中DelegatingRequestProcessor是注释的。

    struts和spring整合的2种方式

    在实际应用中,随着Struts2的出现和Spring Boot的流行,这种Struts1与Spring的整合方式逐渐被新的框架组合取代,如Spring MVC或Spring Boot的WebFlux。然而,对于学习和理解框架整合以及依赖注入的概念,这些基础...

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    struts1和spring整合

    Struts1 和 Spring 整合是 Java Web 开发中常见的一种技术组合,它们分别作为 MVC 框架和依赖注入框架,共同提升了应用的可维护性和可扩展性。Struts1 提供了强大的控制器层,而 Spring 提供了业务逻辑处理和依赖...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    Struts和Spring之间通过ActionServlet和Spring的DispatcherServlet协同工作,而Spring与Hibernate之间的整合通常通过SessionFactoryBean和HibernateTemplate完成。 8. **用户注册流程**:用户提交注册信息后,...

    struts 与spring整合关键点

    以上就是Struts与Spring整合的关键点,整合这两个框架可以使应用程序更易于测试和维护,同时充分利用Spring的强大功能,如依赖注入和事务管理,提高开发效率和应用质量。在实际项目中,需要根据具体需求选择合适的...

    Struts Spring Hibernate整合实践

    1. **Spring 与 Struts 整合**: - **ActionSupport 方式**:将 Struts Action 类继承自 Spring 的 ActionSupport 类,但这样会导致 Struts Action 与 Spring 紧耦合,不利于后期扩展或更换框架。 - **...

    EJB3与Struts与Spring整合开发(SSE)

    在"EJB3与Struts与Spring整合开发(SSE)"的场景中,开发者可能将EJB3作为业务逻辑层,处理复杂的业务操作;Struts作为前端控制器,负责用户交互和请求转发;而Spring则作为整个应用的“胶水”,实现各层间的协调和...

    Struts+Spring+Hibernate整合教程.pdf

    1. 引入相关库:添加Struts、Spring和Hibernate的jar包到项目中。 2. 配置Spring:创建ApplicationContext配置文件,定义Bean及其依赖关系。 3. 配置Struts:在struts-config.xml中配置Action和ActionForward,同时...

    Struts2整合Spring、JPA

    至于`lib1`这个文件,可能包含了整合所需的一些依赖库,比如Struts2、Spring和JPA实现的JAR包,以及可能的数据库驱动和其他支持库。确保这些库被正确地添加到项目的类路径中是成功整合的基础。 总的来说,Struts2、...

    struts hibernate spring 整合 PUB

    struts struts hibernate spring 整合 PUBhibernstruts hibernate spring 整合 PUBate spring 整合 PUB

    Struts+Spring+Hibernet整合例子

    Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子

    struts2和spring整合包

    **Struts2和Spring整合** 整合Struts2和Spring的主要目标是利用两者的优点,创建一个更强大的MVC应用。整合步骤通常包括: 1. **配置Spring**:创建Spring的ApplicationContext配置文件,定义Bean及其依赖。 2. **...

    struts hibernate spring整合图解及源码

    综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在整合过程中,开发者需要注意配置文件的正确设置,包括Struts2的struts.xml、Hibernate的hibernate.cfg.xml以及Spring的applicationContext.xml等。还需要确保各框架之间的依赖注入正确无误,例如,Spring需要知道...

    struts与spring的整合

    将Struts与Spring整合可以充分利用两者的优点,实现更高效、更灵活的开发。 **Struts框架详解** Struts是Apache软件基金会的一个开源项目,基于MVC设计模式,主要解决了JSP模型2架构中的控制器问题。它通过...

Global site tag (gtag.js) - Google Analytics