搭建Struts2开发环境并整合Spring3

来源:互联网 发布:连云港联通网络 编辑:程序博客网 时间:2024/05/16 06:23

前面搭建Spring3环境,这篇搭建Struts2开发环境并整合Spring3。

  1. 下载Struts2需要的jar包
    1.strtus2-core
    2.struts2-spring-plugin(struts2和Spring整合时需要使用到的插件)
    3.struts2-convention-plugin(使用了这个插件之后,就可以采用注解的方式配置Struts的Action,免去了在struts.xml中的繁琐配置项)
    4.struts2-config-browser-plugin(config-browser-plugin插件不是必须的,但是使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射)

在pom.xml文件中编写Struts2所需要的jar包,Maven会自动下载这些包:

<!-- Struts2的核心包 -->        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-core</artifactId>            <version>2.3.16</version>            <!--            这里的 exclusions 是排除包,因为 Struts2中有javassist,Hibernate中也有javassist,            所以如果要整合Hibernate,一定要排除掉Struts2中的javassist,否则就冲突了。            <exclusions>                <exclusion>                    <groupId>javassist</groupId>                    <artifactId>javassist</artifactId>                </exclusion>            </exclusions>             -->        </dependency>        <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action -->        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-convention-plugin</artifactId>            <version>2.3.20</version>        </dependency>        <!--config-browser-plugin插件,使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射 -->        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-config-browser-plugin</artifactId>            <version>2.3.20</version>        </dependency>        <!-- Struts2和Spring整合插件 -->        <dependency>            <groupId>org.apache.struts</groupId>            <artifactId>struts2-spring-plugin</artifactId>            <version>2.3.4.1</version>        </dependency>

这里写图片描述

2.编写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>    <!-- 指定由spring负责action对象的创建 -->    <constant name="struts.objectFactory" value="spring" />    <!-- 所有匹配*.action的请求都由struts2处理 -->    <constant name="struts.action.extension" value="action" />    <!-- 是否启用开发模式 -->    <constant name="struts.devMode" value="true" />    <!-- struts配置文件改动后,是否重新加载 -->    <constant name="struts.configuration.xml.reload" value="true" />    <!-- 设置浏览器是否缓存静态内容 -->    <constant name="struts.serve.static.browserCache" value="false" />    <!-- 请求参数的编码方式 -->    <constant name="struts.i18n.encoding" value="utf-8" />    <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->    <constant name="struts.i18n.reload" value="true" />    <!-- 文件上传最大值 -->    <constant name="struts.multipart.maxSize" value="104857600" />    <!-- 让struts2支持动态方法调用 -->    <constant name="struts.enable.DynamicMethodInvocation" value="true" />    <!-- Action名称中是否还是用斜线 -->    <constant name="struts.enable.SlashesInActionNames" value="false" />    <!-- 允许标签中使用表达式语法 -->    <constant name="struts.tag.altSyntax" value="true" />    <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->    <constant name="struts.dispatcher.parametersWorkaround" value="false" />    <package name="basePackage" extends="struts-default">    </package></struts>

3.在web.xml中配置Struts2的过滤器

   <!-- Struts2配置 -->    <filter>        <filter-name>struts2</filter-name>        <filter-class>            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter        </filter-class>  <!-- Struts2过滤器拦截所有的.action请求 -->      </filter>      <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>      </filter-mapping>

4.编写测试类
这里写图片描述
内容:

package sy.action;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.ParentPackage;import org.springframework.beans.factory.annotation.Autowired;import sy.service.UserserviceI;@ParentPackage("basePackage")@Action(value="testAction")//使用convention-plugin插件提供的@Action注解将一个普通java类标注为一个可以处理用户请求的Action,Action的名字为struts2Test@Namespace("/")//使用convention-plugin插件提供的@Namespace注解为这个Action指定一个命名空间public class TestAction {    /**     * 注入userService     */    @Autowired    private UserserviceI userService;    /**     * http://localhost:8080/mavenblog/testAction!test.action     */    public void test(){        System.out.println("进入TestAction");        userService.test1();    }}

这里使用@Autowired注解将userService注入到UserAction中。

测试Struts2的开发环境是否搭建成功,先执行【Maven install】操作,然后部署到tomcat服务器,最后启动tomcat服务器运行,

输入访问地址:http://localhost:8080/mavenblog/testAction!test.action,访问结果如下:

这里写图片描述

控制台输出如下:

这里写图片描述

测试通过,Struts2的开发环境搭建并整合Spring成功!
0 0
原创粉丝点击