Struct2的简单的CRUD配置和使用
1.
首先是Struct2使用的jar包,可以在官网下载https://struts.apache.org/ ,其中包只要下面这些就够用了。
或者点击下面链接下载
链接:https://pan.baidu.com/s/19vH_6FElQSzbLu3VqcGmSA
提取码:jybj

2.配置文件,在WEB-INF文件下的web.xml文件中添加内容
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.添加struts.xml 内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts> <package name="default" namespace="/" extends="struts-default">
<action name="delete" class="action.Deleteaction">
<result>/index.jsp</result>
</action>
<action name="add" class="action.Addaction">
<result>/index.jsp</result>
</action>
<action name="updata" class="action.Updataction">
<result>/index.jsp</result>
</action>
</package>
</struts>
其中的action的作用:
1.name属性为请求地址,即当请求地址为name的属性时会到这里。
2.class 为请求的方法所在的类,该类需要继承 ActionSupport,后面还会说。
3.method 属性(可选),当请求时,默认执行的是class中 execute 方法,如果添加了method属性,将访问method属性下的方法。
4.result属性,即为当方法返回成功之后,要返回的界面
4.以增加为例
Addaction,其中主要的业务代码都需要写在execute中,如果在xml文件中action没有配置method属性即执行该方法,配置其他方法就会执行对应的方法。返回为SUCCESS,就会跳转到对应的result页面。
package action; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import Bean.StudentDao;
import Model.Student; public class Addaction extends ActionSupport {
private static final long serialVersionUID = 1L;
private HttpServletRequest request = ServletActionContext.getRequest();
private HttpServletResponse response = ServletActionContext.getResponse(); @Override
public String execute() throws Exception {
System.out.println("add");
request.setCharacterEncoding("UTF-8");
String xuehao=request.getParameter("xuehao");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String shengri=request.getParameter("shengri");
String zhuzhi=request.getParameter("zhuzhi");
Student student=new Student();
student.setName(name);
student.setSex(sex);
student.setShengri(shengri);
student.setXuehao(xuehao);
student.setZhuzhi(zhuzhi);
StudentDao studentDao=new StudentDao();
try{
studentDao.add(student);
request.setAttribute("success", "添加成功");
}catch(Exception e){
request.setAttribute("error123", "用户名存在");
}
//request.getRequestDispatcher("addinput.jsp").forward(request, response); return SUCCESS;
} }
5.在请求地址上,为add.action
6.在运行时可能会报错在我操作过程中主要遇到的有两种问题
1.web.xml没有配置
2.缺少jar包
3.structs.xml配置错误,如果class下的文件不存在启动会报错,classNotfound,运行的页面都为404

程序运行界面:


注意请求地址

Struct2的简单的CRUD配置和使用的更多相关文章
- Springboot项目搭建(1)-创建,整合mysql/oracle,druid配置,简单的CRUD
源码地址:https://github.com/VioletSY/article-base 1:创建一个基本项目:https://blog.csdn.net/mousede/article/detai ...
- spring集成mongodb封装的简单的CRUD
1.什么是mongodb MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB是一个介 ...
- Mybatis 系列7-结合源码解析核心CRUD 配置及用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...
- Mybatis实现简单的CRUD(增删改查)原理及实例分析
Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...
- 一个简单的零配置命令行HTTP服务器
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...
- 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...
- 8天掌握EF的Code First开发系列之2 简单的CRUD操作
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...
- 简单几步配置gitlab
简单几步配置gitlab 之前配置gitlab需要很多步骤,要装apache2.ruby.tomcat.mysql等一片东西.有没有更简单的方式呢?现在可以借助bitnami,简化了很多. 可以参考v ...
随机推荐
- MySQL_数据库命令
Mysql基础命令 开启MySQL服务:net start mysql 关闭MySQL服务:net stop musql 进入mysql:mysql -h localhost -u root -p 1 ...
- es5实现map/filter
// ES5循环循环实现filter const selfFilter = function (fn, context) { let arr = Array.prototype.slice.call( ...
- 上传下载文件到Linux服务器
转自链接:https://blog.csdn.net/drdongshiye/article/details/89430535Mac的终端是十分强大 , 可以通过命令进行上传下载下载文件夹 scp - ...
- Linux札记
1. tar.gz 压缩命令:tar -zcvf 压缩文件名.tar.gz 被压缩文件名 解压命令:tar -zxvf 压缩文件名.tar.gz
- PTA(Basic Level)1033.旧键盘打字
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- 这可能是最简单易懂的 ZooKeeper 笔记
分布式架构 CAP 与 BASE 理论 一致性协议 初识 Zookeeper Zookeeper 介绍 Zookeeper 工作机制 Zookeeper 特点 Zookeeper 数据结构 Zooke ...
- day03-04
光驱 历史的东西 远程管理卡 它的作用是通过网络远程(异地)开关服务器,并可以查看服务器开关的过程等信息,早期(2010年以前),服务器托管在IDC机房,出问题,还得跑机房或者请机房的人管理,有了 ...
- WAMPSERVER-服务器离线无法切换到在线状态问题的解决
问题描述:WAMPSERVER-服务器离线“切换到在线状态”则弹出: 解决方案: 本地连接---属性----Internet 协议(TCP/IP)---高级---wins----导入LMHOSTS( ...
- spring 的工厂类
spring 的工厂类 1. 工厂类 BeanFactory 和 ApplicationContext 的区别. ApplicationContext 是 BeanFactory 的子接口,提供了比父 ...
- 作业6:Java虚拟机类加载机制
一.概述 1.定义 虚拟机类加载机制:把类的数据从Class文件加载进内存,并对数据作校验.转换解析和初始化,最终形成可被JVM直接使用的Java类型. 2.与C/C++的不同 Java不在编译时进行 ...