Maven搭建Struts2框架

1:新建Maven Project。

Artifact Id选择web app。

Group Id:项目包名  Artifact Id:模块名  0.0.1-SNAPSHOT:快照  package:包名  

创建出来的项目应该是这个样子的。现在报错的意思的,没有添加servelt依赖,我用的是eclipse 4.5,创建的maven项目 默认会报错,等下再解决。先把maven的目录骨架搭建好。

maven的目录结构:

  src

    -main

      -java

        -package:自定义的包

      -resources

    -test

      -java

        -package

      -resources

现在需要做的是新建文件夹,补全上面的目录结构

现在我们来处理index.jsp报错的问题,打开pom.xml。

添加了一个依赖,javax.servlet。报错解决。然后右键 pox.xml-> run as -> Maven build ->输入命令clean compile

    

可以看到build success。至此 maven web搭建成功。接下来搭建Struts2框架。

http://mvnrepository.com/   maven仓库的网址,我们在这里搜索struts2

把依赖信息(坐标)粘贴到pox.xml中,保存后会自动下载相应jar包

接下来在src/java/resources下创建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>
    <!-- 所有匹配*.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="default" extends="struts-default">

    </package>


</struts>

在web.xml中添加struts2的核心过滤器

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <!-- 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>*.action</url-pattern>
    </filter-mapping>
</web-app>

我们可以在struts.xml中配置action,也可以采用convention-plugin的方式,通过注解配置,现在我们用convention-plugin来完成项目的搭建,也需要去maven仓库搜索相应坐标,现在我们的pom.xml的整体如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>MavenProject</groupId>
    <artifactId>Struts2_Maven</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Struts2_Maven Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <!-- 只在编译时和测试时运行 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.16</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-convention-plugin</artifactId>
            <version>2.3.20</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-config-browser-plugin</artifactId>
            <version>2.3.20</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>Struts2_Maven</finalName>
    </build>
</project>

接下来在src/main/java中创建我们的action

package com.zhao.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @ParentPackage:用来指定struts.xml中的package
 * @Action注解将一个普通Java类标识为可以处理用户请求的Action类
 * @Namespace是命名空间
 * @author zhao
 *
 */
@ParentPackage("default")
@Action
@Namespace("/")
public class LoginAction extends ActionSupport {
    /**
     * 重写父类的execute()方法
     */
    @Override
    public String execute() throws Exception {
        System.out.println("Struts2_Maven搭建成功");
        return SUCCESS; 
    }
}

在这里就不具体说明返回的逻辑视图怎么找了,我们直接在web-inf下创建content文件夹,然后创建login.jsp

现在 可以运行了

 

posted @ 2016-04-11 19:51  假寐的我  阅读(700)  评论(0编辑  收藏  举报