Struts2实现CRUD(增 删 改 查)功能实例代码

实现CRUD(增删改查)功能是Web开发中最基本的功能之一,本文将详细讲解如何使用Struts2框架实现该功能。

步骤一:新建项目并引入依赖

首先,在Eclipse中新建一个动态Web项目,命名为:Struts2CRUD。接着,新增一个名为“lib”的文件夹,用于存放所需的Jar包。然后,将以下Jar包复制到该文件夹中:

  • commons-lang3-x.x.jar
  • freemarker.jar
  • javassist.jar
  • ognl.jar
  • struts2-core-x.x.x.jar

其中,x.x代表版本号。

步骤二:配置Web.xml文件

接下来,我们需要配置Web.xml文件。请将以下内容复制到该文件的标签中:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这段代码的作用是启用Struts2的过滤器,以便能够识别和处理请求。

步骤三:创建JSP页面

接下来,我们需要创建JSP页面。我们将创建4个JSP页面,分别用于展示所有用户、新建用户、编辑用户和删除用户。

展示所有用户的JSP页面

请将以下代码复制到一个名为showAllUsers.jsp的文件中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示所有用户</title>
</head>
<body>
    <h1>显示所有用户</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
        <s:iterator value="users" var="user">
            <tr>
                <td><s:property value="#user.id"/></td>
                <td><s:property value="#user.name"/></td>
                <td><s:property value="#user.age"/></td>
                <td><s:property value="#user.gender"/></td>
                <td>
                    <a href="<s:url action='edit'><s:param name='id'/>"></a>
                    <a href="<s:url action='delete'><s:param name='id'/>"></a>
                </td>
            </tr>
        </s:iterator>

    </table>
    <br/>
    <a href="<s:url action='add'/>">新增用户</a>
</body>
</html>

这段代码用于展示所有用户信息,并提供编辑和删除链接。

新建用户的JSP页面

请将以下代码复制到一个名为addUser.jsp的文件中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增用户</title>
</head>
<body>
    <h1>新增用户</h1>
    <form action="<s:url action='save'/>" method="post">
        <table>
            <tr>
                <td>姓名:</td>
                <td><input type="text" name="name"/></td>
            </tr>
            <tr>
                <td>年龄:</td>
                <td><input type="number" name="age"/></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td>
                    <input type="radio" name="gender" value="男"/>男
                    <input type="radio" name="gender" value="女"/>女
                </td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="保存"/></td>
            </tr>
        </table>
    </form>
    <br/>
    <a href="<s:url action='list'/>">返回列表</a>
</body>
</html>

这段代码用于展示一个表单,用于提交新建用户的数据。

编辑用户的JSP页面

请将以下代码复制到一个名为editUser.jsp的文件中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>编辑用户</title>
</head>
<body>
    <h1>编辑用户</h1>
    <form action="<s:url action='update'/>" method="post">
        <table>
            <tr>
                <td>姓名:</td>
                <td><input type="text" name="name" value="<s:property value="#user.name"/>"/></td>
            </tr>
            <tr>
                <td>年龄:</td>
                <td><input type="number" name="age" value="<s:property value="#user.age"/>"/></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td>
                    <input type="radio" name="gender" value="男" <s:if test="#user.gender == '男'">checked="checked"</s:if>>男
                    <input type="radio" name="gender" value="女" <s:if test="#user.gender == '女'">checked="checked"</s:if>>女
                </td>
            </tr>
            <tr>
                <td><input type="hidden" name="id" value="<s:property value="#user.id"/>"/></td>
                <td><input type="submit" value="保存"/></td>
            </tr>           
        </table>
    </form>
    <br/>
    <a href="<s:url action='list'/>">返回列表</a>
</body>
</html>

这段代码用于展示一个表单,用于提交编辑用户的数据。

删除用户的JSP页面

请将以下代码复制到一个名为deleteUser.jsp的文件中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除用户</title>
</head>
<body>
    <h1>删除用户</h1>
    <form action="<s:url action='delete'/>" method="post">
        <s:hidden name="id"/>
        您确定要删除吗?<br/>
        <input type="submit" value="确定"/>
    </form>
    <br/>
    <a href="<s:url action='list'/>">返回列表</a>
</body>
</html>

这段代码用于展示一个表单,用于提交删除用户的数据。

步骤四:创建控制器

我们将创建一个名为UserController的控制器,用于处理用户请求和信息。请将以下代码保存到UserController.java文件中:

package com.strut2.crud;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class UserController extends ActionSupport {

    private static final long serialVersionUID = 1L;

    private int id;

    private String name;

    private int age;

    private String gender;

    private List<User> users = new ArrayList<User>();

    public String list() {
        users = getUserList();
        return "list";
    }

    public String add() {
        return "add";
    }

    public String save() {
        users.add(new User(name, age, gender));
        return "save";
    }

    public String edit() {
        User user = getUserById(id);
        if (user != null) {
            name = user.getName();
            age = user.getAge();
            gender = user.getGender();
            return "edit";
        } else {
            return ERROR;
        }
    }

    public String update() {
        User user = getUserById(id);
        if (user != null) {
            user.setName(name);
            user.setAge(age);
            user.setGender(gender);
            return "update";
        } else {
            return ERROR;
        }
    }

    public String delete() {
        User user = getUserById(id);
        if (user != null) {
            users.remove(user);
            return "delete";
        } else {
            return ERROR;
        }
    }

    private List<User> getUserList() {
        List<User> userList = new ArrayList<User>();
        userList.add(new User(1, "Tom", 18, "男"));
        userList.add(new User(2, "Jerry", 20, "女"));
        userList.add(new User(3, "Lucy", 19, "女"));
        userList.add(new User(4, "John", 22, "男"));
        return userList;
    }

    private User getUserById(int id) {
        for (User user : users) {
            if (user.getId() == id) {
                return user;
            }
        }
        return null;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

}

步骤五:配置Struts.xml文件

接下来,我们需要配置Struts.xml文件。请将以下内容复制到该文件中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>

    <package name="default" extends="struts-default">
        <action name="list" class="com.strut2.crud.UserController" method="list">
            <result name="list">/showAllUsers.jsp</result>
        </action>
        <action name="add" class="com.strut2.crud.UserController" method="add">
            <result name="add">/addUser.jsp</result>
        </action>
        <action name="save" class="com.strut2.crud.UserController" method="save">
            <result name="save" type="redirect">/list.action</result>
        </action>
        <action name="edit" class="com.strut2.crud.UserController" method="edit">
            <result name="edit">/editUser.jsp</result>
        </action>
        <action name="update" class="com.strut2.crud.UserController" method="update">
            <result name="update" type="redirect">/list.action</result>
        </action>
        <action name="delete" class="com.strut2.crud.UserController" method="delete">
            <result name="delete" type="redirect">/list.action</result>
        </action>
    </package>

</struts>

这段代码用于定义了6个动作,包括显示所有用户、新增用户、保存用户、编辑用户、更新用户和删除用户。

步骤六:运行程序

最后,我们可以运行程序验证该功能的实现。在Eclipse中右键单击项目,选择“Run As” -> “Run on Server”,然后在浏览器中访问 http://localhost:8080/Struts2CRUD/list.action ,即可查看结果。

示例

我们通过两个示例来演示如何使用Struts2实现CRUD功能。

示例一:新增用户

假设我们现在要新增一个用户,我们可以通过以下步骤实现:

  1. 在浏览器中访问 http://localhost:8080/Struts2CRUD/list.action ,查看当前所有用户的信息。
  2. 点击“新增用户”的链接,跳转到新增用户页面。
  3. 在新增用户页面输入用户信息,点击“保存”按钮,提交表单数据。
  4. 程序将新增的用户信息保存到users集合中,并跳转到用户列表页面,显示所有用户信息(包括新增的用户信息)。

示例二:编辑用户

假设我们现在要编辑一个用户的信息,我们可以通过以下步骤实现:

  1. 在浏览器中访问 http://localhost:8080/Struts2CRUD/list.action ,查看当前所有用户的信息。
  2. 点击某个用户的“编辑”链接,跳转到编辑用户页面。
  3. 在编辑用户页面修改用户信息,点击“保存”按钮,提交表单数据。
  4. 程序将修改的用户信息更新到users集合中,并跳转到用户列表页面,显示所有用户信息(包括修改后的用户信息)。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2实现CRUD(增 删 改 查)功能实例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java synchronized同步方法详解

    Java synchronized同步方法详解 在多线程编程中,由于线程的交叉执行可能会造成资源竞争和数据安全问题。使用Java synchronized关键字可以通过限制同时只有一个线程可以访问被synchronized修饰的代码块或方法,从而保证了线程安全性。本文将详细讲解Java synchronized同步方法的原理、用法和示例。 同步方法的原理 J…

    Java 2023年5月26日
    00
  • java使用Nagao算法实现新词发现、热门词的挖掘

    Java使用Nagao算法实现新词发现、热门词的挖掘攻略 本文将介绍如何使用Java实现Nagao算法对文本进行分析,从而实现新词发现和热门词挖掘。攻略分为以下四步: 数据预处理 在使用Nagao算法对文本进行分析前,需要对词语进行切分。Java中常用的中文分词工具有jieba、HanLP等,本文以使用HanLP为例: import com.hankcs.h…

    Java 2023年5月19日
    00
  • Java验证时间格式是否正确方法类项目实战

    Java验证时间格式是否正确方法类项目实战 介绍 在Java开发过程中,经常需要验证时间日期格式是否正确,例如用户提交的时间日期格式是否符合规范,或者我们需要对某个日期字符串进行解析等等。这篇文章将介绍如何在Java中验证时间日期格式是否正确的方法类项目实战。 步骤 步骤一:创建时间格式验证工具类 我们可以创建一个名为 DateTimeUtil 的工具类来进…

    Java 2023年5月20日
    00
  • SpringBoot Starter依赖原理与实例详解

    SpringBoot Starter依赖原理与实例详解 在SpringBoot中,我们可以使用Starter依赖来简化项目的依赖管理。本文将详细讲解SpringBoot Starter依赖原理与实例详解的完整攻略,并提供两个示例。 1. Starter依赖原理 在SpringBoot中,Starter依赖是一种特殊的依赖,它可以自动配置SpringBoot应…

    Java 2023年5月15日
    00
  • Springboot内外部logback多环境配置详解

    针对“Springboot内外部logback多环境配置详解”这个主题,以下是完整的攻略: 简介 本文主要是介绍如何在Springboot应用中使用logback日志框架,并实现根据不同环境配置不同的日志输出。 前提条件 在开始之前,需要保证你已经: 了解并掌握了Springboot应用开发和使用过程; 能够使用logback进行日志输出; 对logback…

    Java 2023年5月20日
    00
  • 利用python分析access日志的方法

    当我们需要了解一个网站的访问情况时,经常会使用access日志来进行分析。在本文中,我们将利用python来分析access日志。 准备工作 在开始之前,我们需要一些准备工作: 确认access日志的格式是否符合Nginx的常规格式,通常情况下,access日志应该包括如下信息: 远程访问IP 访问时间 请求方式 请求的URL 请求的HTTP协议版本 请求的…

    Java 2023年5月20日
    00
  • java时间日期使用与查询代码详解

    Java时间日期使用与查询代码详解 介绍 在Java中,日期和时间是一个常见的需求。Java为我们提供了用于处理日期和时间的多个类和方法。本文将深入介绍Java的日期时间相关的类和方法,并提供使用示例和代码详解。 本文涉及以下类: java.time.LocalDate – 表示只用日期,不包含时间的类。 java.time.LocalTime – 表示只用…

    Java 2023年5月20日
    00
  • Java判断对象是否为空(包括null ,””)的方法

    判断对象是否为空是Java开发中非常常见的操作,正确的判断方式可以避免很多空指针异常的出现。以下是几种常见的判断对象是否为空的方法。 1.使用“==”运算符判断是否为null 在Java中,使用“==”运算符判断对象是否为null是最常用的方式,代码示例如下: Object obj = null; if (obj == null) { // 对象为空 } e…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部