struts2+maven+idea实现 超详解

一、起源

    1、挺多公司老项目会使用到ssh整合框架使用,所以逐个去学习,学习struts2的时候  

  发现网上的教程多是eclipse的普通Java项目,没有目前比较火的idea,以及比较少maven的教程

  总得来说,就是符合我目前使用结构风格的教程没有,多是一些老古董般的教程

    

二、学习

    1、新建一个maven项目,按照正常操作,创建一个我们熟悉的maven项目

      

    2、现在所得的maven项目是一个控制台项目,把普通的maven控制台项目变成一个web版的maven项目

     2.1、然后将会得到一下的目录结构,跟网上老的struts的教程会有点不一样,这一点也是很重要的,不一样导致学习的时候就会比较难以下手

 

特别谨记,不能从下面加web,不然创建的web会无效

     3、添加架构所需依赖

<dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.4</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.26</version>
        </dependency>

        <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-convention-plugin</artifactId>
            <version>2.5.10.1</version>
        </dependency>
        <!--config-browser-plugin插件,使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射-->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-config-browser-plugin</artifactId>
            <version>2.5.10.1</version>
        </dependency>

    </dependencies>

最重要的一点来了,变成web项目需要在pom.xml 上配置没

有这个,是不可能会成功的,会一直404,找不到你的web

<build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

还要谨记一点的就是设置生成war包

  <packaging>war</packaging>

    

    4、接下来就是web.xml里面的配置(这里和ssm不一样的就是这里的不需要配置框架xml的位置,通过过滤器,框架会自动处理struts2.xml的xml)

   <--一系列连接默认跳转地址,如果没有,则会持续寻找以下地址-->
 <display-name>StrutsDemo02</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

<--过滤器配置-->
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    5、配置struts.xml

  <--包 namespace设置包用斜杠替换,不然访问连接的时候就要直接加上包的name-->
    <package name="helloaction" extends="struts-default" namespace="/">
        <action name="hello" class="com.gz.controller.HelloAction">
            <result name="ok">/hello.jsp</result>
        </action>
    </package>    

    6、测试代码类 上面配置的 com.gz.controller.HelloAction,就新建一个HelloAction类,在路径包里面(返回的OK对应上面配置的result的name,会跳转配置的jsp)

jsp页面可以根据下面截图的结构,写一个返回的jsp和一个主页jsp其中主页jsp可以随意写web.xml配置了的名称

 

    7、最后测试,手动生成war包,运行,记得要用手动生成的,他会自动生成一个war包是没有用的,在这踩坑挺久

 一个手动一个自动生成的

 然后正常Tomcat选择war包,就完成了一个struts2入门的学习,后续进阶,就根据这个思路去学习就可以了

成功的把一些,老古董类的东西,转成了现在比较流行的写法

这就是在pom.xml 里面没有build的结果,无论怎么写,都找不到你的web  

正确结果

主页index.jsp

访问hello类的返回hello.jsp 

一系列配置不知道什么意思的可以自行搜索,网上新写法

没有,但是配置解析还是有很多的,那些解析比我的理解要透彻

毕竟,我现在只是一个刚上车struts2框架的小白

 

  

原文地址:https://www.cnblogs.com/gz007/p/14731969.html