zoukankan      html  css  js  c++  java
  • 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

    现在 可以运行了

  • 相关阅读:
    逆向学习中扫雷第一阶段小结
    破解基础篇三
    逆向方面学习实践安排
    破解基础篇二
    20159320《网络攻防实践》第9周视频总结
    20159320《网络攻防实践》第9周学习总结
    20159320《网络攻防实践》第9周教材总结
    破解基础篇之第一部分
    20159320《网络攻防实践》第8周视频总结
    20159320《网络攻防实践》第8周学习总结
  • 原文地址:https://www.cnblogs.com/zhao307/p/5379890.html
Copyright © 2011-2022 走看看