实现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功能。
示例一:新增用户
假设我们现在要新增一个用户,我们可以通过以下步骤实现:
- 在浏览器中访问 http://localhost:8080/Struts2CRUD/list.action ,查看当前所有用户的信息。
- 点击“新增用户”的链接,跳转到新增用户页面。
- 在新增用户页面输入用户信息,点击“保存”按钮,提交表单数据。
- 程序将新增的用户信息保存到users集合中,并跳转到用户列表页面,显示所有用户信息(包括新增的用户信息)。
示例二:编辑用户
假设我们现在要编辑一个用户的信息,我们可以通过以下步骤实现:
- 在浏览器中访问 http://localhost:8080/Struts2CRUD/list.action ,查看当前所有用户的信息。
- 点击某个用户的“编辑”链接,跳转到编辑用户页面。
- 在编辑用户页面修改用户信息,点击“保存”按钮,提交表单数据。
- 程序将修改的用户信息更新到users集合中,并跳转到用户列表页面,显示所有用户信息(包括修改后的用户信息)。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2实现CRUD(增 删 改 查)功能实例代码 - Python技术站