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配置和使用的更多相关文章

  1. Springboot项目搭建(1)-创建,整合mysql/oracle,druid配置,简单的CRUD

    源码地址:https://github.com/VioletSY/article-base 1:创建一个基本项目:https://blog.csdn.net/mousede/article/detai ...

  2. spring集成mongodb封装的简单的CRUD

    1.什么是mongodb         MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB是一个介 ...

  3. Mybatis 系列7-结合源码解析核心CRUD 配置及用法

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  4. ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...

  5. Mybatis实现简单的CRUD(增删改查)原理及实例分析

    Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...

  6. 一个简单的零配置命令行HTTP服务器

    http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...

  7. 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)

    http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...

  8. 8天掌握EF的Code First开发系列之2 简单的CRUD操作

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...

  9. 简单几步配置gitlab

    简单几步配置gitlab 之前配置gitlab需要很多步骤,要装apache2.ruby.tomcat.mysql等一片东西.有没有更简单的方式呢?现在可以借助bitnami,简化了很多. 可以参考v ...

随机推荐

  1. MySQL_数据库命令

    Mysql基础命令 开启MySQL服务:net start mysql 关闭MySQL服务:net stop musql 进入mysql:mysql -h localhost -u root -p 1 ...

  2. es5实现map/filter

    // ES5循环循环实现filter const selfFilter = function (fn, context) { let arr = Array.prototype.slice.call( ...

  3. 上传下载文件到Linux服务器

    转自链接:https://blog.csdn.net/drdongshiye/article/details/89430535Mac的终端是十分强大 , 可以通过命令进行上传下载下载文件夹 scp - ...

  4. Linux札记

    1. tar.gz 压缩命令:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 解压命令:tar  -zxvf   压缩文件名.tar.gz

  5. PTA(Basic Level)1033.旧键盘打字

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...

  6. 这可能是最简单易懂的 ZooKeeper 笔记

    分布式架构 CAP 与 BASE 理论 一致性协议 初识 Zookeeper Zookeeper 介绍 Zookeeper 工作机制 Zookeeper 特点 Zookeeper 数据结构 Zooke ...

  7. day03-04

    光驱 历史的东西 远程管理卡 ​ 它的作用是通过网络远程(异地)开关服务器,并可以查看服务器开关的过程等信息,早期(2010年以前),服务器托管在IDC机房,出问题,还得跑机房或者请机房的人管理,有了 ...

  8. WAMPSERVER-服务器离线无法切换到在线状态问题的解决

     问题描述:WAMPSERVER-服务器离线“切换到在线状态”则弹出: 解决方案: 本地连接---属性----Internet 协议(TCP/IP)---高级---wins----导入LMHOSTS( ...

  9. spring 的工厂类

    spring 的工厂类 1. 工厂类 BeanFactory 和 ApplicationContext 的区别. ApplicationContext 是 BeanFactory 的子接口,提供了比父 ...

  10. 作业6:Java虚拟机类加载机制

    一.概述 1.定义 虚拟机类加载机制:把类的数据从Class文件加载进内存,并对数据作校验.转换解析和初始化,最终形成可被JVM直接使用的Java类型. 2.与C/C++的不同 Java不在编译时进行 ...