• 【快速搭建系列】idea快速搭建struts2框架和测试


    idea快速搭建struts2框架和测试示例

    步骤

    搭建环境

    新建一个maven项目

    添加maven依赖

    pom.xml
    <!-- ****************struts2框架包*************** -->
    <!-- struts2-core -->
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.33</version>
    </dependency>
    
    
    
    <!-- ****************可选*************** -->
    <!-- lombok -->    
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.8</version>
    </dependency>
    <!-- jstl -->
    <dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    </dependency>
    <!-- jsp-api -->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
    </dependency>
    <!-- servlet-api -->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    然后建好java和resources根目录包

    请添加图片描述

    然后这个时候可以看到当右键resources根目录时多了一个Struts Config的选项

    这时就可以新建一个名为struts的struts配置文件了(因为导了包)

    请添加图片描述

    如果之前没有在idea中用过struts2的话需要先下载插件:

    idea左上角file—settings

    请添加图片描述

    然后左边Plugins,输入struts2,下载一下插件

    请添加图片描述

    在web.xml设置struts2的过滤器

    web.xml
    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 Applicationdisplay-name>
    
        
        <filter>
            <filter-name>struts2filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>
        filter>
        <filter-mapping>
            <filter-name>struts2filter-name>
            <url-pattern>/*url-pattern>
        filter-mapping>
    
        
        <welcome-file-list>
            <welcome-file>index.jspwelcome-file>
        welcome-file-list>
    
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    然后创建如图项目结构

    请添加图片描述

    tips:因为只有struts2框架所以没办法连后端数据库,所以dao和service就这样空着了

    然后先来写一个测试是否能够访问的小例子

    测试

    测试运行

    action相当于controller

    在action包下创建一个测试action

    TestAction.java
    package com.r.action;
    
    /**
     * @Author Tuerlechat,
     * @Date 2022/11/8
     */
    public class TestAction {
        public String execute() {
            System.out.println("TestAction类被调用了。");
            return "test";  //返回的结果
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    然后在webapp中新建一个test.jsp

    test.jsp
    <%--
      Created by IntelliJ IDEA.
      User: Tuerlechat,
      Date: 2022/11/8
      Time: 19:27
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Test</title>
    </head>
    <body>
    <h2>我是test页面</h2>
    </body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    然后配置struts2的配置文件

    struts.xml
    
    
    DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        
        <package name="test" namespace="/" extends="struts-default">
            
            <action name="test"
                    class="com.r.action.TestAction"
                    method="execute">
                
                <result name="test">/test.jspresult>
            action>
        package>
    
    struts>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    这时候可能会爆红,但不需要管

    然后部署tomcat,运行

    运行结果

    请添加图片描述

    控制台显示

    请添加图片描述

    可以看到控制台显示的时候说明成功访问了test路径,也就是成功进入到了TestAction这个类中的方法

    说明搭建struts2框架环境成功

    登录小例子
    HelloStrutsAction.java
    package com.r.action;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    import com.r.model.User;
    import lombok.Getter;
    import lombok.Setter;
    
    import java.util.Map;
    
    /**
     * @Author Tuerlechat,
     * @Date 2022/11/8
     */
    @Getter
    @Setter
    public class HelloStrutsAction extends ActionSupport {
    
        private User user;
    
        @Override
        public String execute() throws Exception {
            System.out.println("用户名:" + user.getUserName());
            System.out.println("密码:" + user.getPassword());
    
            if ("admin".equals(user.getUserName()) && "1234567".equals(user.getPassword())) {
                // 将user对象保存在session中
                Map<String, Object> session = null;
                session = ActionContext.getContext().getSession();
                session.put("user_session", user);
                return "success";
            } else {
                return "fail";
            }
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    实体类

    User.java
    package com.r.model;
    
    import lombok.Data;
    
    @Data
    public class User {
        private String userName;
        private String password;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    前端页面

    login.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
    	登录
    
    
    
    
    用户名:
    密 码:
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    success.jsp
    <%@ page contentType="text/html;charset=UTF-8"  isELIgnored="false" language="java" %>
    
    
        登录成功
    
    
    
    欢迎您,${sessionScope.get("user_session").userName}
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    fail.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
      登录失败
    
    
    
    用户名或密码不匹配。
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    struts2配置文件

    struts.xml
    
    DOCTYPE struts PUBLIC
       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
       "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    
    
    
    
    
    
        <package name="helloworld" namespace="/" extends="struts-default">
    
          <action name="hello" 
                class="com.r.action.HelloStrutsAction"
                method="execute">
                <result name="success">/success.jspresult>
                <result name="fail">/fail.jspresult>
          action>
          <action name="test"
                class="com.r.action.TestAction"
                method="execute">
                <result name="test">/test.jspresult>
          action>
       package>
    struts>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    运行结果

    登录页面

    请添加图片描述

    登录成功

    请添加图片描述

    登录失败

    请添加图片描述

    问题

    开启服务器即开启无限404报错循环模式

    无论是action,jsp,html什么都不行

    全部404,而且后端不报错

    解决方法

    说明是项目结构有问题

    具体原因不清楚

    点击idea左面file下的Project Structure

    请添加图片描述

    然后点击Facets,添加Struts2

    请添加图片描述

    然后ok

    请添加图片描述

    然后按图步骤添加

    请添加图片描述

    请添加图片描述

    请添加图片描述

    这两个项目结构配置,添加删除,然后tomcat也重新配置一下,无限循环到好了为止(一般是重新改一次就好了)

  • 相关阅读:
    PBX与VoIP:它们之间有什么区别?
    缓存热key问题
    你管这叫操作系统源码(十七)
    win10安装detectron2和AdelaiDet并利用Solov2训练自己的实例分割数据集
    mysql面试题44:MySQL数据库cpu飙升的话,要怎么处理?
    英集芯IP5566带TYPE-C口3A充放快充移动电源5w无线充二合一方案SOC
    面向对象之设计原则与设计模式
    好用的PDF解密工具哪个好?
    Nginx高可用 - Keepalived安装部署
    游读广州|康园环保行
  • 原文地址:https://blog.csdn.net/weixin_55452293/article/details/127882793