`

Spring4学习(七)Spring整合Struts2,容器管理Action

阅读更多

        搭建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>

 

  • 大小: 10.2 KB
分享到:
评论

相关推荐

    整合struts2和spring

    在Struts2和Spring整合中,可以使用Spring提供的拦截器,例如`org.springframework.web.struts.DelegatingInterceptor`,它能让Spring容器处理Action的实例化。 7. **事务管理**:Spring提供了强大的事务管理功能。...

    最新项目系统:Struts2+Spring4+Hibernate4三大框架整合

    总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...

    S2SH整合 struts2 spring4 hibernate4

    2. **集成Spring**:将Spring作为依赖注入容器,管理Struts2的Action类。这通常通过在Action类上添加Spring的`@Component`注解,并在Spring配置文件中声明bean来实现。同时,可以利用Spring的AOP功能进行事务管理。 ...

    Struts2整合Spring、JPA

    在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...

    struts2+spring4+hibernate

    Spring4则作为整个应用的容器,管理所有Bean,包括Struts2的Action,以及业务服务和DAO(数据访问对象)。Hibernate则在Spring4的管理下,处理数据持久化操作,将业务对象与数据库进行交互。 至于Apache Tomcat,它...

    spring与struts2整合

    4. **Action 类**:Action 类通常作为 Struts2 处理请求的入口,它可以从 Spring 容器中注入所需的依赖。通过在 Action 类上使用 `@Component` 注解并配置在 Spring 配置文件中,可以确保 Spring 能够创建和管理这些...

    struts2与spring2的整合

    整合Struts2和Spring2的主要目标是将Spring的DI功能引入到Struts2的Action类中,使得Action类的依赖可以在Spring容器中被管理。这样,Action类不再需要自行创建依赖对象,而是通过Spring来获取,增强了代码的可维护...

    Struts2Spring4Hibernate4整合

    在SSH整合中,Spring4主要负责管理Bean的生命周期,包括Hibernate的数据访问对象(DAO)、Service层业务对象以及Struts2的Action。Spring4的AOP可以用来实现全局事务管理,确保数据的一致性。 Hibernate4则是主流的...

    spring+struts2+ibatis整合的jar包

    Spring作为整体的框架容器,负责管理所有的Bean,包括Struts2和iBatis的相关组件。Struts2处理HTTP请求,调用Spring管理的业务服务,这些服务又通过Spring的数据访问层(DAO)与iBatis进行交互,执行数据库操作。...

    Spring与Struts2整合

    整合这两者可以使我们在享受Struts2的优秀UI处理和Action逻辑管理的同时,利用Spring进行更灵活的依赖管理和事务控制。 **二、整合步骤** 1. **配置Struts2** 首先,需要在项目中引入Struts2的依赖,并在web.xml中...

    Struts2+Spring4+Hibernate5整合

    在Struts2+Spring4整合中,Spring负责管理Action类及其依赖,使得应用更易于测试和解耦。 **Hibernate5** 是一个对象关系映射(ORM)框架,简化了数据库操作。它将Java对象与数据库表进行映射,使得开发者可以使用...

    hibernate struts2 和spring的整合项目

    - 配置Struts2:在struts.xml中定义Action,通过Spring插件实现Action的依赖注入,这样Action可以直接使用由Spring管理的业务服务。 - 配置AOP:Spring的AOP可以用于事务管理,确保在多个数据库操作中保持事务的...

    spring4 struts2 mybatis3 maven3 整合

    Struts 2与Spring的整合可以利用Spring的依赖注入,使Struts 2的动作类(Action)和其他服务层对象能够通过Spring容器获取依赖,提高代码的可测试性和可维护性。 **MyBatis 3** 是一个持久层框架,它允许开发者编写...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    Spring与Struts 2整合.zip

    整合Spring和Struts 2可以使开发更加便捷,因为Spring的IoC容器可以帮助管理对象的生命周期,而Struts 2则专注于处理请求和展现逻辑。这种整合方式在大型项目中非常常见,有助于提升代码质量和团队协作效率。 在...

    SSH框架整合spring4+hibernate4+struts2(终结版)

    SSH框架整合Spring4、Hibernate4和Struts2是Java企业级开发中常见的一种技术栈组合,这三种框架分别负责不同的职责:Spring作为整体的应用管理框架,Hibernate负责对象关系映射,Struts2则处理表现层逻辑。...

    spring+struts2整合源码

    整合的关键在于如何让Struts2知道如何从Spring容器中获取Bean。这通常通过使用Spring插件来实现,它会在Struts2启动时自动从Spring容器加载所有标记为@Controller的Bean。在`struts-plugin.xml`中,添加如下配置: ...

    最新的S2SH整合:Spring4,Hibernate4,Struts2(源码)

    3. **集成Struts2**:在Struts2的配置文件中定义Action,这些Action通常会注入Spring管理的Service,以执行业务逻辑。同时,配置拦截器链,实现AOP功能,如事务管理、日志记录等。 4. **测试与调试**:编写JUnit...

Global site tag (gtag.js) - Google Analytics