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日

相关文章

  • JAVAWEB实现简单的商城项目(一)实例代码解析

    首先,需要说明的是,”JAVAWEB实现简单的商城项目(一)实例代码解析”是一篇比较详细的文章,讲述了如何使用JavaWeb技术实现一个简单的商城项目,并对项目中的代码进行了详细解析。 文章总共分为以下几个部分: 1. 简介 在这个部分中,作者简要说明了本文要介绍的内容,即如何使用JavaWeb技术实现一个简单的商城项目,并说明了本文的目标读者群体以及需要具…

    Java 2023年5月19日
    00
  • 历数Firefox2.0对XML处理的改进

    历数Firefox2.0对XML处理的改进包括以下内容: 更好的XML解析器 Firefox2.0更新了内置的XML解析器,更快地解析XML文件,同时提高了XML解析器的可靠性和兼容性。新的XML解析器支持XML1.0和XML1.1标准,通过使用W3C的XML DOM API,可以更方便的操作和访问XML文档中的节点信息。 示例1:如何使用XML DOM A…

    Java 2023年6月15日
    00
  • Springboot – Fat Jar示例详解

    下面我来详细讲解“Springboot – Fat Jar示例详解”的完整攻略。 简介 首先介绍一下什么是Fat Jar。简单来说,它是一个可以包含应用程序所有依赖库的大型JAR文件,因此它也被称为可执行JAR文件。SpringBoot可以使用Maven或Gradle生成Fat Jar,其他构建工具也支持类似的功能。 在使用Fat Jar时,需要做的就是提供…

    Java 2023年5月19日
    00
  • Java超详细讲解SpringMVC如何获取请求数据

    在 Spring MVC 中,我们可以使用多种方式来获取请求数据,包括表单数据、路径参数、请求头、Cookie 等。本文将详细讲解 Spring MVC 如何获取请求数据,包括如何使用 @RequestParam 注解、@PathVariable 注解、@RequestHeader 注解、@CookieValue 注解,并提供两个示例说明。 使用 @Requ…

    Java 2023年5月18日
    00
  • SpringBoot通过整合Dubbo解决@Reference注解问题

    一、SpringBoot整合Dubbo 利用Dubbo作为RPC(远程过程调用)传输框架,可以将服务分成消费方和提供方两个角色,而Dubbo根据角色的不同提供了不同的注解方式来实现。在消费方和提供方都使用Dubbo的情况下,SpringBoot整合Dubbo优势更加明显。 二、Dubbo @Reference 注解问题 Dubbo的注解@Reference可…

    Java 2023年5月19日
    00
  • 什么是Java网络编程?

    Java网络编程,简称Java网络编程,是指使用Java编程语言实现网络通信的过程。它可以让我们实现客户端与服务器之间的通信,以及实现不同计算机之间的数据传输。下面介绍Java网络编程的完整使用攻略。 一、Java网络编程基础 Java网络编程基础主要包含以下几个内容: IP地址:Internet Protocol(IP)地址是计算机在网络上的唯一标识符。在…

    Java 2023年5月11日
    00
  • Struts 2中实现Ajax的三种方式

    Struts 2 是一个基于MVC设计模式的Web框架,既支持传统的同步请求,也可以通过 Ajax 技术实现异步请求。在 Struts 2 框架中,实现 Ajax 的方式有以下三种: 1. 使用Struts2提供的<s:url>标签 Struts 2 提供了 <s:url> 标签,该标签可以在页面中生成一个 URL 地址,当用户点击或…

    Java 2023年5月20日
    00
  • Java实现验证码具体代码

    Java实现验证码需要以下步骤: 1. 生成随机字符串 我们可以使用Java的Random类来生成随机数,并将随机数转换为字符串。以下是示例代码: Random random = new Random(); StringBuffer codeBuffer = new StringBuffer(); for (int i = 0; i < 4; i++)…

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