Struts---DispatchAction

Struts框架中DispatchAction与MappingDispatchAction详解 Struts 是 Apache 基金会旗下的一个开源项目,专为简化 Java Web 应用的开发而设计。它基于经典的 MVC(Model-View-Controller)架构模式,将业务逻辑、用户界面和流程控制解耦,提升了代码的可维护性与可扩展性。其核心组件包括 ActionServlet(控制器中枢)、ActionForm(数据封装)、Action(业务控制器)和 JSP(视图展示),共同构成了一个结构清晰、易于扩展的开发框架。 阅读详情

        今天学习了DispatchAction,收益匪浅。

一 Action

        

  1.  package example.action;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.apache.commons.logging.Log;
  5. import org.apache.commons.logging.LogFactory;
  6. import org.apache.struts.action.ActionForm;
  7. import org.apache.struts.action.ActionForward;
  8. import org.apache.struts.action.ActionMapping;
  9. import org.apache.struts.actions.DispatchAction;
  10. public class LoginAction extends DispatchAction
  11. {
  12.  public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception
  13.  {
  14.   log.info("添加成功 public ActionForward add");
  15.   request.setAttribute("method", "添加");
  16.   return mapping.findForward("add");
  17.  }
  18.  public ActionForward modify(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception
  19.  {
  20.   log.info("修改成功 public ActionForward modify");
  21.   request.setAttribute("method", "修改");
  22.   return mapping.findForward("modify");
  23.  }
  24.     private Log log = LogFactory.getLog(LoginAction.class);
  25. }

二 ActionForm

  1. import org.apache.struts.action.ActionForm;
  2. public class LoginForm extends ActionForm
  3. {
  4.     private String username;
  5.     private String password;
  6.     public String getUsername()
  7.     {
  8.         return username;
  9.     }
  10.     public void setUsername(String username)
  11.     {
  12.         this.username = username;
  13.     }
  14.     public String getPassword()
  15.     {
  16.         return password;
  17.     }
  18.     public void setPassword(String password)
  19.     {
  20.         this.password = password;
  21.     }
  22. }

三 struts-config.xml


  1.  <action path="/login" input="/Login/login.jsp" type="example.action.LoginAction" name="LoginForm" parameter="method">
  2.         <forward name="add" path="/index.jsp"></forward>
  3.         <forward name="modify" path="/index.jsp"></forward>
  4.     </action>

四 JSP页面 

  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  3. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  4. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  5. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html:html lang="true">
  8.   <head>
  9.     <html:base />
  10.     
  11.     <title>测试DispatchAction</title>
  12.     <meta http-equiv="pragma" content="no-cache">
  13.     <meta http-equiv="cache-control" content="no-cache">
  14.     <meta http-equiv="expires" content="0">    
  15.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16.     <meta http-equiv="description" content="This is my page">
  17.     <!--
  18.     <link rel="stylesheet" type="text/css" href="styles.css">
  19.     -->
  20.   </head>
  21.   
  22.   <body>
  23.   
  24.    <html:form action="login">
  25.    用户名: <html:text property="username"></html:text><br>
  26.    密  码: <html:password property="password"></html:password><br>
  27.    <input type="hidden" name="method" value="add">
  28.    <html:submit value="添加"/>
  29.    </html:form>
  30.    
  31.    <html:form action="login">
  32.    用户名: <html:text property="username"></html:text><br>
  33.    密  码: <html:password property="password"></html:password><br>
  34.    <input type="hidden" name="method" value="modify">
  35.    <html:submit value="修改"/>
  36.    </html:form>
  37.   </body>
  38.   
  39. </html:html>

使用Struts的DispatchAction,一定要<input type="hidden" name="method" value="add">加个隐藏域来确定是访问那个方法,呵呵

AI大模型探索之路-训练篇3:大语言模型全景解读 大规模语言模型(Large Language Models,LLM),也称大语言模型或大型语言模型,是一种由包含数百亿以上参数的深度神经网络构建的语言模型,通常使用自监督学习方法通过大量无标注文本进行训练。 阅读详情

相关推荐

HFSS15 win10_64位破解

HFSS15 win10_64位破解 找到的别人的软件,但在首次安装时失败了,并不能patched。寻找了几种方法,已成功安装。在此写下安装经验,供大家参考。 软件安装包以及破解软件: 链接:https://pan.baidu.com/s/1MMjV_31maU5QD6fmI4zfIA 提取码:yj4q 在安装之前,建议关闭杀毒软件。 Step1:进入HFSS150Win64安装包,点击au...

玉笙寒 4万+

Struts心得—DispatchAction使用日记

Struts1.1发布了这么长时间了,我才刚刚开始系统地学习Struts的相关知识,经过前一阵潜心研究,对Struts1.1中已有的类DispatchAction有了进一步的认识。我将在这里总结一下,希望能对大家有所帮助。在1.0版本中我们通常都是用execute方法来完成我们对业务逻辑的处理及页面的转发。通常在一个Action中我们都只能够完成一种业务逻辑的操作。如果要是完成多个业务逻辑(比如:

筑巢的寒号鸟 1184

ConnectionResetError 10054 根因分析与全链路防御指南

ConnectionResetError(错误码10054)是TCP协议中服务端主动发送RST包导致的强制断连,本质并非网络连接失败,而是服务端基于空闲超时、连接满载、TLS协商失败等策略做出的确定性终止决策。理解其底层原理有助于跳出‘重试’误区,转向连接生命周期管理。该错误高频出现在HTTP长连接、WebSocket、第三方API对接等场景,尤其在Nginx反向代理、负载均衡器(如AWS ALB)、WAF设备及内核conntrack机制下极易触发。本文结合Wireshark抓包分析、客户端心跳保鲜、协议指

weixin_30225755的博客 637

Struts中两个相似类的解释DispatchAction

Struts中两个相似类的解释 DispatchAction======================= 我自己认为DispatchAction可用可不用,不过DispatchAction 确实提供了一些方便。下边简要对它的用法做一些说明: DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个action里处理。 举个例子就是如果在你的系统中有文章的管理操

978

Windows打印体系结构之Windows内置打印驱动程序

时间是一种很残酷的东西,它只会冲淡能够冲淡的,但也会洗尽铅华帮你留下该留下的。1.3.4、Windows内置打印驱动程序现在的Windows下的打印机驱动程序通常分为V4打印机驱动程序(V4 Printer Driver)、XPS打印机驱动程序(XPSDrv)、微软通用打印机驱动程序(Microsoft UniversalPrinter Driver)、微软PostScri...

weixin_34309435的博客 2253

智能车竞赛飞檐走壁组立体赛道电磁引导线设计与实现

本文深入解析了智能车竞赛飞檐走壁组立体赛道电磁引导线的核心设计与实现。针对垂直面、圆筒、跷跷板等立体元素,详细阐述了电磁线规格参数选择、三维空间铺设技巧及磁场调试方法,旨在帮助参赛队伍打造稳定可靠的导航系统,提升车模在复杂立体赛道上的通过率与稳定性。

bert9linguist的博客 277

Struts 之 DispatchAction

介绍     DispatchAction就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute被调用的方法。     例如parameter="method"而request.getParameter("method")="save",其中"save"就是MethodName。struts的请求将根据parameter被分发到"sav...

Senton 218

AD9371 官方例程构建及单音信号收发

项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。

weixin_44630490的博客 2971

Struts旅程(五)struts控制器DispatchAction

上篇演示了struts框架的由来,从而体现struts框架优点。Struts中的表单处理器为ActionForm,而struts中的控制器主要是Action,以及DispatchAction控制器等。 Action 在struts中,所有的用户都会经过ActionServlet的处理,而实际的工作是交给Action对象来处理的,ActionServlet可以从配置文件中创建ActionMapp

Xinghf 1万+

Jetson Nano之CSI摄像头操作方法

jetson端csi摄像头的应用方法

ZONGXP的博客 1万+

第14.10章 高翔博士最新开源框架Lightning-LM源码解读(十):在线定位run_loc_online涉及到的核心模块总结

本文对Lightning-LM激光SLAM定位框架进行了全面剖析。该框架是一个轻量高效的激光雷达建图与定位系统,支持3D SLAM、动态图层管理等功能。文章首先介绍了项目概况和源码结构,包括核心模块如定位系统(loc_system)、激光匹配(lidar_loc)和位姿图优化(pose_graph)等。接着详细解析了各模块的关键函数和运行流程,如数据接收处理、NDT匹配和位姿优化等。最后总结了学习该框架所需的C++知识要点,包括智能指针、多线程编程等现代C++特性。该分析为SLAM开发者提供了实用的架构参考

行知SLAM 799

Struts 封装 DispatchAction

       很多时候我们在业务上需要把DispatchAction封装成自己项目的一个基类,以方便完成一些自己业务上的共通处理。DispatchAction是Action的一个子类,它的执行依然是先执行excute方法,根据参数来实行具体的业务分发。       现在,我们先来写一个属于自己的DispatchAction:package blog.struts.base;import j

Leo's WorkShop 1017

TSN新技术,让您的设备网络“更实时、更确定、更安全”

近日,工业和信息化部发布了2022年第23号公告,批准发布行业标准YD/T 4134-2022《工业互联网时间敏感网络需求及场景》。该标准是国内首个时间敏感网络(TSN)技术标准,标志着我国TSN技术标准体系建设迈出了坚实的一步,对构建工业互联网网络标准体系具有重要意义。TSN源于Time-Sensitive Networking的缩写,中文译名为时间敏感网络,因其具备的确定性和微秒级交互特性,受到了对实时性要求较高的工业控制领域的关注。TSN与工业数智化。

创龙,嵌入式一体化解决方案商 769

[转载]Struts中两个相似类的解释DispatchAction

Struts中两个相似类的解释DispatchActionStruts中两个相似类的解释 DispatchAction ======================= 我自己认为...

congji3817的博客 140

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Struts DispatchAction示例

DispatchAction类( org.apache.struts.actions.DispatchAction )提供了一种将所有相关功能分组为单个动作类的方法。 这是避免为每个函数创建单独的动作类的有用机制。 下载此Struts DispatchAction示例– Struts-DispatchAction-Example.zip 要实现此机制,您的操作类需要扩展org.apach...

一名可爱的技术搬运工 224

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Struts之DispatchAction

今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Action中,通过传入的不同参数来觉得执行哪个操作.    DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注

我的世界我的梦 1036

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

struts中DispatchAction的使用

第一种例如:类LoginAction继承DispachAction,: public class LoginAction extends DispatchAction {    public ActionForward loginValidate(ActionMapping mapping, ActionForm form,                                 

liuxueyongyu的专栏 1445

Struts源码阅读——三个常用的辅助类DispatchAction

action>举个例子,如果我们有一个CalcAction类,它包含了addsubtractmultiply和divide函数,我们可以通过以下方式在中为每个函数定义一个路径:在这个配置中,每个<action>元素对应了CalcAction中的一个函数,parameter属性指定了要调用的控制函数的名称。

spy47_的博客 1151

Struts1 DispatchAction

原文地址:http://www.iteye.com/post/437174 在Struts中你要尽可能的不用Action类,因为他们让你的项目变得臃肿,你可以使用org.apache.struts.actions.DispatchAction类来完成业务逻辑所需要的相关操作集中到一个Action类中,在继承DispatchAction后,你不再是重新定义execute()方法,而是编写...

Mr.Cheney的专栏 183

struts1 DispatchAction类例子

DispatchAction提供了一个分组到一个单一的行动的相关功能设置机制,从而消除了需要为每个功能的独立行动。在这个例子中,我们将看到如何设置一组用户添加用户有关的行动一样,更新成一个单一的行动称为UserAction用户和删除用户。类UserAction扩展org.apache.struts.actions.DispatchAction。这个类不提供的执行()作为正常类的方法并实施行

wty814022051的专栏 1359

Struts : 使用 DispatchAction

您为每一个动作撰写一个Action类,随著网站的增大,维护Action的成本也就随著增大,您可以使用 模组化程式 来管理,而另一方面,在检视一些Action时,您会发现某些Action所执行的,其实是完成一个业务逻辑所需要的连续动作或相关动作,例如帐号的登 入、登出等动作。在Struts中,您可以使用org.apache.struts.actions.DispatchAction类别将完成一个业务

vannly的专栏 1553

Struts-DispatchAction

struts DispatchAction

ASKYOFCODE的博客 495

Struts1的DispatchAction()方法

在早期的Struts 1.x中为了在大的工程下方便管理而添加了DispatchAction()方法 DispatchAction继承与Action类,是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。 Dispatc

chensl1989的专栏 849

struts中的DispatchAction

<br />在Struts中你要尽可能的不用Action类,因为他们让你的项目变得臃肿,你可以使用org.apache.struts.actions.DispatchAction类来完成业务逻辑所需要的相关操作集中到一个Action类中,在继承DispatchAction后,你不再是重新定义execute()方法,而是编写你自己的业务方法,execute()方法在DispatchAction抽象类定义。 <br /><br />例如我们可以继承DispatchAction来定义一个AccountAction

技术交流 546
上一篇: Java删除文件夹及其所有内容
下一篇: Struts---MappingDispatchAction
myjava_024
博客等级 码龄20年 59粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值