spring整合struts

整合目标:使用spring的bean管理struts action service。

整合步骤:

一、加入spring

1、加入spring jar包

2、配置web.xml文件

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

3、加入spring配置文件

二、加入struts2

1、加入struts2 jar包

2、在web.xml配置

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

2、加入struts2 对spring支持的插件包struts2-spring-plugin-2.3.31.jar

3、加入struts2配置文件

4、创建一个简单service和action

package com.hy.service;

public class PersonService {
    public void save() {
        System.out.println("personService save...");
    }
}
package com.hy.action;

import com.hy.service.PersonService;

public class PersonAction {

    private PersonService personService;

    public PersonService getPersonService() {
        return personService;
    }

    public void setPersonService(PersonService personService) {
        this.personService = personService;
    }

    public String execute() {
        System.out.println("execute...");
        personService.save();
        return "success";
    }
}

5、在spring的配置文件中配置action和service

<bean name="personService" class="com.hy.service.PersonService"></bean>
    <bean name="personAction" class="com.hy.action.PersonAction" scope="prototype">
        <property name="personService" ref="personService"></property>
    </bean>

注意action的scope必须是prototype(非单例模式)

6、在struts2配置文件中配置action

<action name="person-save" class="personAction">
            <result>/success.jsp</result>
        </action>

7、创建测试页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<a href="person-save">person-save</a>
</body>
</html>

附录:

web.xml

<?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"
    version="3.0">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

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

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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean name="person" class="com.hy.bean.Person">
        <property name="name" value="wanghai"></property>
    </bean>

    <bean name="personService" class="com.hy.service.PersonService"></bean>
    <bean name="personAction" class="com.hy.action.PersonAction" scope="prototype">
        <property name="personService" ref="personService"></property>
    </bean>
</beans>

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.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <package name="default" namespace="/" extends="struts-default">
        <action name="person-save" class="personAction">
            <result>/success.jsp</result>
        </action>
    </package>

</struts>
时间: 2024-10-12 06:20:49

spring整合struts的相关文章

spring 整合struts

1.例子:未被spring整合 struts.xml 的配置文件 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.configuration.xml.reload" value="true"/> <!--配置扩展名 .do--> <constant

Spring入门(四)— 整合Struts和Hibernate

一.Spring整合Struts 1. 初步整合 只要在项目里面体现spring和 strut即可,不做任何的优化. struts 环境搭建 创建action public class UserAction extends ActionSupport { public String save(){ System.out.println("调用了UserAction的save方法~~!"); } } 在src下配置struts.xml , 以便struts能根据请求调用具体方法 <

Spring与Struts整合

正常的spring与struts工程文件所需jar包及配置条件下,增加如下配置: struts.xml 增加:<constant name="struts.objectFactory" value="spring" /> 配置action的时候,class直接写spring配置文件(applicationContext.xml)中的bean的ID 增加:struts2-spring-plugin-2.3.28  Jar包即可: 注意在applicatio

spring,hibernate,struts整合

SSH整合: Spring与Hibernate整合 Spring与Struts整合 整合步骤:---------------------------------------------->本人使用的是struts2.3.4.1   hibernate3.6.0  spring3.2.5 1.导入jar文件 1)struts jar文件-->如何找? -->去源码包中struts-2.3.4.1\apps\struts-blank.war -->使用压缩文件打开struts-blan

Spring+mybatis+struts框架整合的配置具体解释

学了非常久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦.可是配置完一次之后.就轻松多了,那么框架整合配置具体解释例如以下. 1.导入对应的jar包 由于我们建造的是maven的web项目,全部我们在pom.xml中须要导入这些包. pom.xml 具体凝视 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q

Spring整合Hibernate与Struts

整合S2SH 一.导入jar包 Spring jar包 Hibernate jar包 Struts2 jar包 以上就是整合需要的所有jar包,当然其中有重复的包,(对比之后去掉版本低的就可以了,还有就是在整合Spring4和hibernate时我们配置的hibernate最多只能配置到hibernate4[现在多数都用的是hibernate5,所以通常都会报一个错误:org/hibernate/engine/transaction/spi/TransactionContext:碰上这个错误的话

spring与struts简单整合案例

Spring,负责对象对象创建 Struts, 用Action处理请求 Spring与Struts框架整合, 关键点:让struts框架action对象的创建,交给spring完成! 步骤: 1)引入struts .jar相关文件 a.引入struts .jar相关文件 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.

条理清晰的搭建SSH环境之整合Struts和Spring

上文说到搭建SSH环境所需三大框架的jar包,本篇博客将通过修改配置文件整合Struts和Spring,下篇博客整合Hibernate和Spring即可完成环境搭建. 1.声明bean,新建TestAction.java,需要给类添加注解:@Controller 和 @Scope("prototype"): "使用@Controller注解标识TestAction之后,就表示要把TestAction交给Spring容器管理,在Spring容器中会存在一个名字为"te

struts2,hibernate,spring整合笔记(4)--struts与spring的整合

饭要一口一口吃,程序也要一步一步写, 很多看起来很复杂的东西最初都是很简单的 下面要整合struts和spring spring就是我们的管家,原来我们费事费神的问题统统扔给她就好了 先写一个测试方法 package com.hibernate; import static org.junit.Assert.*; import org.hibernate.SessionFactory; import org.junit.Test; import org.springframework.conte