- 浏览: 1356806 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
一、struts与spring如何整合
线索从web.xml看起
- <?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>
<?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
- <?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>
<?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
- <?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>
<?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:
- <?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>
<?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来处理了。
发表评论
-
Spring 配置文件的加载情况
2009-04-20 13:02 1377package com.wangyu.util; i ... -
spring propertyplaceholderconfigurer
2009-01-12 08:34 22992Spring的框架中为您提供了一个 BeanFactoryPo ... -
Quartz调度任务
2008-07-11 11:29 1968package example.chapter9; ... -
配置邮件服务mail
2008-07-11 10:47 2435ApplicationContext.xml <?xm ... -
struts与spring如何整合(2)
2008-07-02 23:27 2361问题:这里的plug-in标签的作用是什么?可以不写plugi ... -
定时器quartz的应用
2008-07-02 23:14 2789用quartz可以实现web或非web模式的定时器 1、配置 ... -
SpringAOP
2008-06-07 22:34 1235package com.wangyu02; public ... -
Spring XML配置的12个技巧
2008-04-27 20:14 2253Spring是一个强有力的java程序框架,其被广泛应用于ja ...
相关推荐
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整合项目源码
用DelegatingRequestProcessor和DelegatingActionProxy两种方法实现struts和spring的整合,不同的地方就在struts-config.xml文件中,当前文件中DelegatingRequestProcessor是注释的。
在实际应用中,随着Struts2的出现和Spring Boot的流行,这种Struts1与Spring的整合方式逐渐被新的框架组合取代,如Spring MVC或Spring Boot的WebFlux。然而,对于学习和理解框架整合以及依赖注入的概念,这些基础...
通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...
Struts1 和 Spring 整合是 Java Web 开发中常见的一种技术组合,它们分别作为 MVC 框架和依赖注入框架,共同提升了应用的可维护性和可扩展性。Struts1 提供了强大的控制器层,而 Spring 提供了业务逻辑处理和依赖...
Struts和Spring之间通过ActionServlet和Spring的DispatcherServlet协同工作,而Spring与Hibernate之间的整合通常通过SessionFactoryBean和HibernateTemplate完成。 8. **用户注册流程**:用户提交注册信息后,...
以上就是Struts与Spring整合的关键点,整合这两个框架可以使应用程序更易于测试和维护,同时充分利用Spring的强大功能,如依赖注入和事务管理,提高开发效率和应用质量。在实际项目中,需要根据具体需求选择合适的...
1. **Spring 与 Struts 整合**: - **ActionSupport 方式**:将 Struts Action 类继承自 Spring 的 ActionSupport 类,但这样会导致 Struts Action 与 Spring 紧耦合,不利于后期扩展或更换框架。 - **...
在"EJB3与Struts与Spring整合开发(SSE)"的场景中,开发者可能将EJB3作为业务逻辑层,处理复杂的业务操作;Struts作为前端控制器,负责用户交互和请求转发;而Spring则作为整个应用的“胶水”,实现各层间的协调和...
1. 引入相关库:添加Struts、Spring和Hibernate的jar包到项目中。 2. 配置Spring:创建ApplicationContext配置文件,定义Bean及其依赖关系。 3. 配置Struts:在struts-config.xml中配置Action和ActionForward,同时...
至于`lib1`这个文件,可能包含了整合所需的一些依赖库,比如Struts2、Spring和JPA实现的JAR包,以及可能的数据库驱动和其他支持库。确保这些库被正确地添加到项目的类路径中是成功整合的基础。 总的来说,Struts2、...
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整合例子
**Struts2和Spring整合** 整合Struts2和Spring的主要目标是利用两者的优点,创建一个更强大的MVC应用。整合步骤通常包括: 1. **配置Spring**:创建Spring的ApplicationContext配置文件,定义Bean及其依赖。 2. **...
综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
在整合过程中,开发者需要注意配置文件的正确设置,包括Struts2的struts.xml、Hibernate的hibernate.cfg.xml以及Spring的applicationContext.xml等。还需要确保各框架之间的依赖注入正确无误,例如,Spring需要知道...
将Struts与Spring整合可以充分利用两者的优点,实现更高效、更灵活的开发。 **Struts框架详解** Struts是Apache软件基金会的一个开源项目,基于MVC设计模式,主要解决了JSP模型2架构中的控制器问题。它通过...