搭建SSH框架,Struts2将Action对象托管给Spring容器来管理,配置文件目录概览
第一步安装插件,将Struts2-Spring-plugin.jar添加到项目的引用路径下。
第二步配置Struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.action.extension" value="do,shtml" /> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- <constant name="struts.ui.theme" value="simple" /> --> <constant name="struts.devMode" value="false"/> <constant name="struts.multipart.maxSize" value="2024258888" /> <constant name="struts.multipart.saveDir" value="/tmp" /> <!-- 通过spring来管理Action --> <constant name="struts.objectFactory" value="spring" /> <!-- 引入其他文件--> <include file="conf/struts/struts_*.xml"/> </struts>
第三步配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- 配置C标签 --> <jsp-config> <taglib> <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> <taglib-location>/WEB-INF/c.tld</taglib-location> </taglib> </jsp-config> <!-- tomcat6 的配置 <taglib> <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> <taglib-location>/WEB-INF/c.tld</taglib-location> </taglib> --> <!-- 配置struts2的过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value> struts-default.xml,struts-plugin.xml,conf/struts/struts.xml </param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 初始化Spring容器 ApplicationContext --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:conf/**/app_*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
第四步配置创建Action类添加到Struts2配置Action
//交给Spring管理 @SuppressWarnings("serial") @Controller @Scope("prototype") public class ContactsAction extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } private String location; public String getLocation() { return location; } public String listContacts() throws IOException { // HttpServletRequest request = ServletActionContext.getRequest(); Map<String, String> map = new HashMap<String, String>(); map.put("flag", "success"); String retVal = GsonUtil.getInstance().convertToJson(map); inputStream = new ByteArrayInputStream(retVal.getBytes("UTF-8")); return SUCCESS; } }
配置Action
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="contacts" extends="struts-default" namespace="/contacts"> <action name="list" method="listContacts" class="org.lian.action.ContactsAction" > <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> </package> </struts>
页面访问路径
<a href="${ctx}/contacts/list.do">测试Action</a>
相关推荐
在Struts2和Spring整合中,可以使用Spring提供的拦截器,例如`org.springframework.web.struts.DelegatingInterceptor`,它能让Spring容器处理Action的实例化。 7. **事务管理**:Spring提供了强大的事务管理功能。...
总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...
2. **集成Spring**:将Spring作为依赖注入容器,管理Struts2的Action类。这通常通过在Action类上添加Spring的`@Component`注解,并在Spring配置文件中声明bean来实现。同时,可以利用Spring的AOP功能进行事务管理。 ...
在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...
Spring4则作为整个应用的容器,管理所有Bean,包括Struts2的Action,以及业务服务和DAO(数据访问对象)。Hibernate则在Spring4的管理下,处理数据持久化操作,将业务对象与数据库进行交互。 至于Apache Tomcat,它...
4. **Action 类**:Action 类通常作为 Struts2 处理请求的入口,它可以从 Spring 容器中注入所需的依赖。通过在 Action 类上使用 `@Component` 注解并配置在 Spring 配置文件中,可以确保 Spring 能够创建和管理这些...
整合Struts2和Spring2的主要目标是将Spring的DI功能引入到Struts2的Action类中,使得Action类的依赖可以在Spring容器中被管理。这样,Action类不再需要自行创建依赖对象,而是通过Spring来获取,增强了代码的可维护...
在SSH整合中,Spring4主要负责管理Bean的生命周期,包括Hibernate的数据访问对象(DAO)、Service层业务对象以及Struts2的Action。Spring4的AOP可以用来实现全局事务管理,确保数据的一致性。 Hibernate4则是主流的...
Spring作为整体的框架容器,负责管理所有的Bean,包括Struts2和iBatis的相关组件。Struts2处理HTTP请求,调用Spring管理的业务服务,这些服务又通过Spring的数据访问层(DAO)与iBatis进行交互,执行数据库操作。...
整合这两者可以使我们在享受Struts2的优秀UI处理和Action逻辑管理的同时,利用Spring进行更灵活的依赖管理和事务控制。 **二、整合步骤** 1. **配置Struts2** 首先,需要在项目中引入Struts2的依赖,并在web.xml中...
在Struts2+Spring4整合中,Spring负责管理Action类及其依赖,使得应用更易于测试和解耦。 **Hibernate5** 是一个对象关系映射(ORM)框架,简化了数据库操作。它将Java对象与数据库表进行映射,使得开发者可以使用...
- 配置Struts2:在struts.xml中定义Action,通过Spring插件实现Action的依赖注入,这样Action可以直接使用由Spring管理的业务服务。 - 配置AOP:Spring的AOP可以用于事务管理,确保在多个数据库操作中保持事务的...
Struts 2与Spring的整合可以利用Spring的依赖注入,使Struts 2的动作类(Action)和其他服务层对象能够通过Spring容器获取依赖,提高代码的可测试性和可维护性。 **MyBatis 3** 是一个持久层框架,它允许开发者编写...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
整合Spring和Struts 2可以使开发更加便捷,因为Spring的IoC容器可以帮助管理对象的生命周期,而Struts 2则专注于处理请求和展现逻辑。这种整合方式在大型项目中非常常见,有助于提升代码质量和团队协作效率。 在...
SSH框架整合Spring4、Hibernate4和Struts2是Java企业级开发中常见的一种技术栈组合,这三种框架分别负责不同的职责:Spring作为整体的应用管理框架,Hibernate负责对象关系映射,Struts2则处理表现层逻辑。...
整合的关键在于如何让Struts2知道如何从Spring容器中获取Bean。这通常通过使用Spring插件来实现,它会在Struts2启动时自动从Spring容器加载所有标记为@Controller的Bean。在`struts-plugin.xml`中,添加如下配置: ...
3. **集成Struts2**:在Struts2的配置文件中定义Action,这些Action通常会注入Spring管理的Service,以执行业务逻辑。同时,配置拦截器链,实现AOP功能,如事务管理、日志记录等。 4. **测试与调试**:编写JUnit...