Spring与Struts2整合

Spring与Struts2为什么要整合呢?

把Action实例交给Spring来管理!!

1.单独测试Struts是否添加成功(jar包和配置文件),先单独测试,不要整合之后再测试,容易出问题

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

Action

public class TestAction extends ActionSupport {

    @Override
    public String execute() throws Exception {
        return "success";
    }
}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!--开发模式-->
    <constant name="struts.devMode" value="true"/>
    <!-- 配置action,在没有与Spring整合时,class属性写的是类的全限定名。
            当与Spring整合后,class属性写的是bean的名称。
            注意:这个bean一定要是多例的模式(prototype)。
         -->
    <package name="default" namespace="/" extends="struts-default">
        <action name="test" class="com.tuniu.action.TestAction">
            <result name="success">/test.jsp</result>
        </action>
    </package>
</struts>

2.单独测试spring是否添加成功(jar包和配置文件)

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 自动扫描与装配bean -->
    <context:component-scan base-package="com.tuniu"/>

</beans>
@Service
public class UserService {

    public void saveUser(Object user) {
        System.out.println("保存一个User对象");
    }
}
public class UserServiceTest {

    @Test
    public void testSaveUser() {
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = (UserService) ac.getBean("userService");
        System.out.println(userService);
    }

}

IOC容器成功管理了实例对象,表示Spring环境添加成功。

3.整合

整个应用程序只需要一个容器对象就可以了

11.在web.xml中配置一个监听器,最大作用范围的监听器,当应用程序启动的时候,它就会初始化这个容器。

<!-- 配置Spring的用于初始化ApplicationContext的监听器 -->
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--学习spring的时候我们就知道生成容器需要读取配置文件-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext*.xml</param-value>
</context-param>

22.

时间: 2024-10-27 12:41:08

Spring与Struts2整合的相关文章

Spring与Struts2整合VS Spring与Spring MVC整合

Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <contex

spring与struts2整合出现错误HTTP Status 500 - Unable to instantiate Action

在进行spring和struts2整合的时候因为大意遇到了一个问题,费了半天神终于找到了问题所在,故分享出来望广大博友引以为戒!! 我们都知道在spring和struts2整合时,spring接管了action对象的创建,所以一定要在spring配置文件中配置action,这里需要注意的是配置<bean id="???">中的id时, 要与struts.xml配置action中的<action class="???">class一致,否则就会

spring+hibernate+Struts2 整合(全注解及注意事项)

最近帮同学做毕设,一个物流管理系统,一个点餐系统,用注解开发起来还是很快的,就是刚开始搭环境费了点事,今天把物流管理系统的一部分跟环境都贴出来,有什么不足的,请大神不吝赐教. 1.结构如下 2.jar包如下 3.首先是spring.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

Spring和Struts2整合

Spring整合Struts2 步骤:1.导入Struts2jar相关包,并且导入Struts2-Spring-plugin-2.0.11.2.jar 2.配置xml文件:配置Struts2过滤器和Spring上下文参数和监听器 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/

Spring+Hibernate+Struts2整合之实现登录功能

软件152 刘安民 前端代码: <form id="loginForm" action="${ pageContext.request.contextPath }/user_login.action" method="post" novalidate="novalidate"> <table> <tbody><tr> <th> 用户名: </th> <

Spring Struts2 整合

一.在Web下使用Spring原理:之前加载Spring的IoC容器是用代码ApplicationContext context = new ClasspathXml......("beans.xml");加载的.在Web中加载需要放在应用程序启动的时候加载,这可以使用监听器来实现. 1.添加jar包.2.spring配置文件.同前3.在web.xml加入配置--在web.xml空白处直接按alt+/选择 #contextloadlistener会生成代码片断. <!--配置Sp

Spring Struts2 整合出错

前天解决了Spring和Hibernate的整合 在我信心满满的时候,开始做Spring和Struts2的整合,我写了一个Action和网页,浏览器运行action时居然报错,原来是我web.xml没有增加Struts2的信息,增加后还是报错,原来不增加的时候,还可以访问index.jsp,增加了以后不能了,花了我近两天的时间,下午问了李霞,结果他也没有找出来,晚上看了好声音后只有再继续找. 我按照错误提示百度,越来越多的提示是说jar包重复,我本着这个点出发,看到项目里有Hibernate4.

Hibernate+Spring+Struts2整合开发中的一个分页显示方案(转载)

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流. 1.DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{        //省略了其他的代码        /**     * 分页查询     * @

Struts2 整合Spring(Maven,注解版)

这两天正在试验Struts2与Spring框架的整合,和他们各自的“注解”.今天就总结一下这两个框架怎么用注解进行整合. 一,加入两者的依赖包,除了两者的必要依赖外,还需要导入struts2-spring-plugin.jar来完成两者的整合. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version&g