spring4如何整合struts2

fiy 其他 32

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring4整合Struts2可以通过以下步骤完成:

    1. 引入所需的依赖:在项目的pom.xml文件中,添加Spring和Struts2的依赖项。例如:
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.10.RELEASE</version>
    </dependency>
    
    <!-- Struts2 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.20</version>
    </dependency>
    
    1. 配置Spring和Struts2的配置文件:在src/main/resources目录下创建一个名为"applicationContext.xml"的Spring配置文件,并添加如下内容:
    <!-- 配置Struts2的标签库 -->
    <bean id="struts2-config" class="org.apache.struts2.dispatcher.servlet.StrutsXmlConfigurationProvider">
        <property name="configFileName" value="/WEB-INF/struts.xml" />
    </bean>
    
    <!-- 配置Struts2的过滤器 -->
    <bean id="strutsFilter" class="org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter">
        <property name="strutsXmlConfig" ref="struts2-config" />
    </bean>
    
    1. 创建Struts核心配置文件:在src/main/webapp/WEB-INF目录下创建一个名为"struts.xml"的Struts2配置文件,并在其中配置Struts2的相关内容。例如:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <constant name="struts.devMode" value="false" />
    
        <!-- 配置Action -->
        <package name="default" extends="struts-default">
            <action name="hello" class="com.example.HelloAction">
                <result>/WEB-INF/views/hello.jsp</result>
            </action>
        </package>
    </struts>
    
    1. 创建Struts2的Action类:在项目中创建一个名为HelloAction的Java类,并实现需要的业务逻辑。例如:
    package com.example;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class HelloAction extends ActionSupport {
        private String message;
    
        public String execute() {
            message = "Hello, World!";
            return SUCCESS;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
    1. 创建Struts2的视图模板:在WEB-INF/views目录下创建一个名为"hello.jsp"的JSP视图文件,并在其中显示Action中的消息。例如:
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
        <title>Hello Struts2</title>
    </head>
    <body>
        <h1>${message}</h1>
    </body>
    </html>
    
    1. 配置Web应用的部署描述符:在src/main/webapp/WEB-INF目录下创建一个名为"web.xml"的部署描述符,并在其中配置Struts2的过滤器和Spring的监听器。例如:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                                 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             id="WebApp_ID" version="3.0">
    
        <!-- Struts2的过滤器配置 -->
        <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>
    
        <!-- Spring的监听器配置 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    </web-app>
    

    完成以上步骤后,即可完成Spring4和Struts2的整合配置。可以编写一个启动类,在其中启动Web应用。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    整合Spring4和Struts2可以使用Struts2的Spring插件来实现。下面是整合过程的步骤:

    1. 引入相关依赖:首先,需要在项目的pom.xml文件中引入Spring和Struts2的相关依赖。例如:
    <!-- Spring依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.10.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.10.RELEASE</version>
    </dependency>
    
    <!-- Struts2依赖 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.13</version>
    </dependency>
    
    <!-- Struts2的Spring插件 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.5.13</version>
    </dependency>
    
    1. 配置web.xml:在web.xml文件中配置DispatcherServlet和Struts2的Filter。例如:
    <!-- 配置DispatcherServlet -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!-- 配置Struts2的Filter -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    1. 配置applicationContext.xml:在Spring的配置文件applicationContext.xml中进行相关配置。例如:
    <!-- 开启注解扫描 -->
    <context:component-scan base-package="com.example" />
    
    <!-- 配置Struts2的Spring插件 -->
    <bean id="strutsSpringObjectFactory" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
    
    <bean id="strutsSpringPlugin" class="org.apache.struts2.spring.StrutsSpringPlugin">
        <property name="objectFactory" ref="strutsSpringObjectFactory" />
    </bean>
    
    <!-- 配置Struts2的Action扫描 -->
    <bean id="strutsActionScanner" class="org.apache.struts2.spring.StrutsActionScanner">
        <property name="basePackages" value="com.example.actions" />
    </bean>
    
    1. 书写Struts2 Action:书写基于Struts2的Action类,并在类前添加Spring的注解。例如:
    @Controller
    @Scope("prototype")
    public class MyAction extends ActionSupport {
    
        // 执行业务逻辑
    
    }
    
    1. 注入Spring的Bean:通过在Action类中使用@Autowired注解,来注入Spring的Bean。例如:
    @Controller
    @Scope("prototype")
    public class MyAction extends ActionSupport {
    
        @Autowired
        private MyService myService;
    
        // 执行业务逻辑
    
    }
    

    通过以上步骤,就完成了Spring4和Struts2的整合。整合后,可以使用Spring的依赖注入和AOP功能,并且可以在Struts2的Action中直接使用注解进行配置。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring框架是一个能够管理Java企业级应用程序的全栈框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能。Struts2框架是一个用于开发基于MVC设计模式的Java Web应用的框架。

    在Spring 4中,可以使用Spring提供的Struts2集成插件来整合Struts2和Spring框架。下面是整合的步骤和操作流程。

    1.添加依赖
    首先,需要在项目的pom.xml文件中添加相应的依赖。具体依赖的版本可以根据项目需要进行调整。

    <!-- Spring依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.29.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.29.RELEASE</version>
    </dependency>
    
    <!-- Struts2依赖 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.26</version>
    </dependency>
    
    <!-- Spring与Struts2集成插件依赖 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.5.26</version>
    </dependency>
    

    2.配置Spring的ApplicationContext
    在Spring的配置文件中,需要配置Spring的ApplicationContext来加载和管理Spring的Bean。可以使用XML配置文件或者Java注解的方式进行配置。

    使用XML配置的示例:

    <!-- 配置Spring的ApplicationContext -->
    <bean id="applicationContext"
        class="org.springframework.context.support.ClassPathXmlApplicationContext">
        <constructor-arg>
            <list>
                <value>classpath:applicationContext.xml</value>
            </list>
        </constructor-arg>
    </bean>
    

    使用Java注解配置的示例:

    @Configuration
    @ComponentScan(basePackages = "com.example")
    public class AppConfig {
        // 配置其他的Bean
    }
    

    3.配置Struts2的过滤器和拦截器
    在web.xml中配置Struts2的过滤器和拦截器,以便正确地处理请求和响应。

    <!-- 配置Struts2的过滤器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 配置Spring的过滤器 -->
    <filter>
        <filter-name>spring</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>spring</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    4.配置Struts2和Spring的集成插件
    在struts.xml文件中配置Struts2和Spring的集成插件,以实现Struts2框架中的Action可以使用Spring的依赖注入和AOP功能。

    例如,可以在struts.xml文件中添加如下的配置:

    <struts>
        <constant name="struts.objectFactory" value="spring" />
        <constant name="struts.objectFactory.spring.autoWire" value="name" />
        <constant name="struts.objectFactory.spring.useClassCache" value="true" />
        
        <!-- 配置Action -->
        <package name="default" extends="struts-default">
            <action name="helloAction" class="com.example.HelloAction">
                <result>/hello.jsp</result>
            </action>
        </package>
    </struts>
    

    5.创建Struts2的Action
    在Spring框架管理的Bean中编写Struts2的Action类,可以使用Spring的依赖注入功能来注入其他的Bean。

    @Controller
    public class HelloAction extends ActionSupport {
        @Autowired
        private GreetingService greetingService;
    
        private String message;
    
        public String execute() {
            message = greetingService.getGreetingMessage();
            return SUCCESS;
        }
    
        // Getter and setter
    }
    

    在上述代码中,HelloAction中使用了@Autowired注解来注入一个名为greetingService的Bean,该Bean可以提供问候消息。execute方法会使用该Bean获取问候消息,并将消息存储在action的message属性中。

    6.测试整合效果
    配置完成后,可以部署和启动项目,然后通过浏览器访问配置的URL,即可看到Struts2和Spring整合的效果。

    综上所述,以上就是使用Spring 4整合Struts2的操作流程和方法。通过整合,可以更好地利用Spring框架的依赖注入和AOP功能来增强Struts2应用程序的开发和管理能力。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部