struts1.3.8 -- 动态Action

STRUTS2学习(三)——从HTTP请求向Action传递数据 1、摘要 动态页面相对于静态页面而言,最大的优势在于其用户与界面的交互过程——这个交互指的就是数据的提交和反馈。Action作为框架中重要的控制器,一端接收来自用户提交的数据,另一方面从数据持久化层提取数据,通过视图展示给用户。这一部分讲的就是ACTION如何从用户提交的HTTP请求中接收数据。 2、直接向Action中的属性注入数据 要实现直接从HTTP请求直接向Action注入数据,需要 阅读详情

       使用ActionForm可以给开发者在处理HTML表单时带来极大的帮助,它简化了代码的编写,并提供了自动的数据验证。但是,ActionForm也存在几个非常明显的缺点。
       首先,如果ActionForm对应的HTML表单添加或删除一些属性,ActionForm类就可能需要修改并重新编译;
       其次,如果HTML表单是动态的,那么ActionForm更是无能为力了;
       另外,ActionForm增加了项目中类的绝对数量!
       于是从Struts1.1起,就引入了动态ActionForm(DynaActionForm)概念。动态ActionForm使得用户无须为应用程序 的每一个HTML表单创建具体的ActionForm类。Struts框架包中的DynaActionForm类及其子类实现了动态 ActionForm。DynaActionForm类扩展了 ActionForm类。用户可以直接使用DynaActionForm类,或者扩展该类以覆盖其validate和reset方法!
       配置动态ActionForm
       动态ActionForm支持在Struts配置文件中完成ActionForm的全部配置,无须编写任何额外的JAVA代码。以下为示例:

<!-- 动态FORM演示                        -->
      
<form-bean name="dynaFormForm" type="org.apache.struts.action.DynaActionForm">
      
<form-property name="userName" type="java.lang.String" />
      
<form-property name="userPwd" type="java.lang.String" />
    
</form-bean>

       在上述代码中<form-bean>的type属性指定了使用Struts框架包中的DynaActionForm类,用户也可以扩展这个类,实现自定义的动态ActionForm。
       在Action中访问动态ActionForm
       同 普通的ActionForm一样,Action类和JSP都可以访问动态ActionForm,而访问方式也基本一致。访问动态ActionForm与访 问普通的ActionForm的最大区别在于对属性的访问方式不同。在标准的ActionForm中,针对每一个属性都提供了getter和setter 方法来读取和设置属性,而DynaActionForm把所有的属性保存在一个Map 对象中,因此访问DyanActionForm中的属性与访问Map对象中的方法类似:
在这里我用上面配置的动态ActionForm来示例如何访问动态ActionForm

DynaActionForm dynaForm =(DynaActionForm)form;
         String userName
= (String)dynaForm.get("userName");
         String userPwd
= (String)dynaForm.getString("userPwd");
        
//dynaForm.set("userName", "fengyan");设置值!


       动态ActionForm的表单验证
       DynaActionForm 类的validate()方法没有提供任何默认的验证行为。可以通过定义扩展DynaActionForm类的子类,然后覆盖validate()方法, 但是以编程方式来验证动态ActionForm并不是一种理想的办法。动态ActionForm的验证应该使用Struts的Validator验证插件。Validator插件允许采用特定的配置文件为动态的ActionForm配置验证规则,如检查必须的输入域,日期时间等 。

 

关于DynaActionForm,我认为有以下缺点:

但是struts-config.xml文件多了很多内容, 尤其当表单字段很多时。

当忘记某个字段的类型及含义时,不方便查阅。struts-config.xml毕竟不是方便反复阅读的。

Struts 1.3.8:完整的Java Web应用框架项目包 Struts是Apache基金会提供的一个开源的Java EE Web应用框架,基于MVC(Model-View-Controller)设计模式。它将Web层的业务逻辑、数据模型和用户界面进行了有效的分离,这使得开发、维护和扩展Web应用变得更加高效。MVC模式全称为Model-View-Controller(模型-视图-控制器)模式,是软件工程中常用的一种设计模式,用于分离应用程序的业务逻辑、用户界面和数据管理。 阅读详情

相关推荐

Struts2.1.8企业级Java Web应用框架实战

本文还有配套的精品资源,点击获取 简介:Struts2.1.8是Apache软件基金会的开源框架,支持构建企业级Java Web应用程序。它整合了WebWork框架,提供了基于MVC设计模式的灵活和强大的功能。本资源重点介绍Struts2的核心特性,包括Action和结果处理、拦截器应用、配置文件的XML或注解方式、模板技术支持、表单处理机制以及国际化支持。此外,还包括插件...

weixin_42601134的博客 693

Struts的初步使用

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取。

2401_84097520的博客 734

掌握SiOME:从零构建OPC UA信息模型的完整指南

本文是掌握SiOME工具的完整指南,详细介绍了如何利用这款免费且强大的OPC UA建模工具,从零开始构建信息模型。内容涵盖从获取软件、创建命名空间、定义对象类型与变量,到添加方法、生成XML文件,并最终将其集成到开源的open62541服务器中。通过可视化建模,开发者可以高效、准确地设计复杂模型,大幅提升工业物联网与自动化项目的开发效率。

tcp8optimizer的博客 515

struts2修复GetShell漏洞

struts2.1.8.1升级至2.3.28步骤: Apache Struts 2是世界上最流行的Java Web服务器框架之一。然而不幸的是,有安全研究员在Struts 2上发现了一枚远程代码执行漏洞。 目前Apache官方已发布公告,该漏洞危险级别为高危。 正好手上有个项目的Struts版本较低,存在该漏洞,于是记录下来: JAR包修改: – 新增jar包  javassist...

既是过河之卒,惟有奋力向前。 659

思必驰离线语音芯片:智能家居控制的核心引擎

思必驰离线语音芯片TH1520通过本地化语音识别技术,为智能家居带来革命性体验。该芯片具备200-600毫秒的快速响应、75分贝抗噪能力和双核异构设计,显著提升设备交互效率。支持自定义指令和10种音色选择,开发周期缩短至3天,BOM成本降低30%,是智能家居控制的核心引擎。

redis7keeper的博客 985

DEM数据下载,拼接,裁剪

目录: 1、数字高程模型(DEM)的数据下载 2、在ENVI里面进行拼接,生成SARscape标准格式的DEM数据3、在ArcGIS里面安装已有的矢量范文,进行掩膜裁剪 4、注意事项 数字高程模型的数据下载: 网址:http://dwtkns.com/srtm30m/ 1.对研究区域进行经纬度选择,然后进行选择下载即可 2.下载的数据是.hgt格式的,按照不同的需求进行转换,这里我是用于ENVI处理,且下载了四个,所有进行了拼接,拼接、格式转换如下 注:可能有时候需要登陆注册,点击下...

weixin_40874151的博客 2万+

Struts 2 动态Action应用

文章参考自:https://blog.csdn.net/Leafage_M/article/details/54577687 这位博主文章对动态action配置有更详细的介绍,需要的可以移步查看,此篇文章只是在第一次配置动态Action时失败了,通过博主的文章把问题解决了,因此记录一下配置过程 动态Action是通过Action对象中一个具体的方法来实现动态操作的。 Step 1 创建Java W...

weixin_39663138的博客 228

SOUL.md 人格定制的 7 个高阶技巧:Hermes Agent 精准控制 AI 行为模式

揭示 SOUL.md 的本质是行为契约而非人格设定,介绍7个围绕边界约束的高阶技巧,包括用上下文锚点(INPUT SCOPE/OUTPUT TARGET/CONSTRAINTS)替代角色描述、动态渲染锚点适配CI流程等,显著降低token消耗与人工review耗时。

weixin_42520239的博客 251

复习Struts2之Action动态方法调用

在实际开发项目中,一个Action类中可能包含多个处理逻辑的action方法,如果为每一个action方法去配制一个标签,可以想象,这将使得Struts2的配制文件变的何等的恐怖。庆幸的是Struts2为我们提供了一种解决方案,那就是支持DMI(Dynamic Method Invocation, 动态方法调用)。那什么是DMI呢?即是通过ActionName!methodName的方式来调用指定

飘痕 2171

Allegro技巧----相同模块复用实现快速布局

使用Allegro软件进行PCB Layout设计时,当电路图中有很多路相同的模块,使用模块复用的的操作方法,可以显著提高工作效率,同时也可以使PCB布局在整体上显得美观。 如图,有8个相同的ADC采样电路模块,它们在原理图中的电路也是一样的,对于这多个相同的电路模块,如果一个个元器件布局很明显做了很多重复机械的劳动,效率低下;但是强大的Allegro软件早就考虑到了这点,只需要在PCB中做好其中的一个,则其余相同的模块通过复用的方式,可以快速完成,方便省事还美观。 具体步骤: 1.首先完成一个模块的PC

sinat_15677011的博客 5655

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 267

初识(struts2中)action动态调用的三种方法

三种方法 1.配置多个action 2.使用感叹号“❗”(只需配置一个action) 3.使用通配符 前期准备 定义两个action类 package cn.com.tjise.dynamic; public class Demo1Action { public String add() { System.out.println("增加标记"); return "succe...

weixin_44540088的博客 885

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

Struts2框架之Action配置

Struts2框架之Action配置

qq_42640067的博客 2188

如何使用 Python 爬取 58 同城招聘信息

职位名称:招聘的岗位名称,如“前端开发”、“数据分析师”等。公司名称:招聘公司的名称。薪资待遇:职位的薪资范围,通常以“面议”、“10k-20k”这样的形式表示。工作地点:公司所在的城市及具体地址。公司福利:例如五险一金、带薪年假、绩效奖金等。发布时间:职位信息的发布时间。一个典型的招聘页面 URL 格式通常如下:在这个页面上,职位信息会分页展示,爬虫需要模拟翻页,获取多个页面的招聘信息。

2201_76125261的博客 1291

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

struts2 action的动态应用(DMI)

action DMI动态应用 创建action 类 package com.demo.action; import com.opensymphony.xwork2.ActionSupport; public class userAction extends ActionSupport { /** * */ private

KDF5000的专栏 1456

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

struts之Action的调用方法

一、 动态方法调用: 1、DMI:Dynamic Method Invocation 动态方法调用。   动态方法调用是指:表单元素的action不直接等于某个Action的名字,而是以感叹号后加方法名来指定对应的动作名:    <!-- 动态方法调用HTML标签与Struts2标签 --><form action="computeAction!add.action" name...

qq30211478的博客 1330

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

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

Struts2中的Action对象

Action对象 Action介绍 Action充当MVC模式的控制器,响应用户操作,执行业务逻辑(或者调用其他类来执行),然后返回一个结果,告诉struts所要呈现的页面。         Struts2 Action类通常扩展ActionSupport类,它由Struts2框架提供。类ActionSupport为常...

qq_40514172的博客 562

Struts2系列(二)Action

一.Action是Struts2的核心,所有用户请求都需要使用Action处理并返回数据。 二.Action测试代码 直接上代码,具体解释见代码注释 代码演示内容:创建Action,Action默认值,Action获取参数 HelloAction.java //import com.opensymphony.xwork2.Action; //import com.opensym...

仲夏风灯 1万+

Struts2的动态调用Action方法和默认Action

动态调用: 在浏览器里输入http://localhost:8080/项目名/Action名!方法名,即可以实现动态调用,而不需要为Action中的每个方法都在struts.xml进行action的配置。 注意:要把struts.enable.DynamicMethodInvocation的值为true,如 ,否则无法动态访问 Action.java import com.ope

于先森 5099

Struts2在动态调用Action的方法时的错误

在尝试动态调用Action的方法时遇到了奇怪的错误: 错误信息: HTTP Status 404 - /Struts2_Test/WEB-INF/content/login!regist.jsp type Status report message /Struts2_Test/WEB-INF/content/login!regist.jsp description The r

zZ_life的博客 942

Struts2的Action的配置和访问(大全)

一、Action的编写 1、Action类就是POJO的类 POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。 (1)编写action的方式 编写类 /* * Action的编写方式:Action类的POJO的类 */ public class ActionDemo1 { public String execute() { System.out.println("ActionDemo1执行了。。。

程序员猫爪 793

Struts2的核心配置之Struts2的常量配置与Action的配置

&nbsp;&nbsp;&nbsp;&nbsp;最近在学习SSH框架,之前Javaweb学的不扎实。所以做好笔记,方便以后的学习。 1. Struts2常量的配置 &nbsp;&nbsp;&nbsp;&nbsp;Struts2常量的配置通常采用3种方式,分别如下: 在struts.xml文件中使用&lt; constant &gt;元素配置常量(最常用的方式); name:该属性指定了常量的常...

YYxiaobao0726的博客 469

Struts2中的Action

回顾Struts2框架前期搭建过程 Struts2  1.导包 - blank  2.写Action类,方法返回值String  3.src/struts.xml     < package name="" namespace="" extends=“struts-default”>          < action name class method>         ...

ThouGht_it的博客 249

Struts2基于注解的Action配置

1· 既然我们开发的是web项目所以web.xml文件时必不可少的 在web.xml 中配置拦截用户请求的 filter拦截用户的所有的请求并且初始化 struts.xml文件         struts2         org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter       

朱伟的专栏 1772

Struts2之Action的编写与访问

Action的编写 方式一: Action类是POJO的类 方式二:Action类实现一个Action的接口 方式三: Action类继承ActionSupport类 Action的访问 通过method设置 通过通配符的方式进行配置 动态方法访问 Action类的编写 Action的配置 jsp页面编写访问路径 ...

ByeBye(野蛮生长) 289
上一篇: common-fileupload-1.1.1 && struts1.3.8 单个文件上传
下一篇: sql注入解释
ForWayfarer
博客等级 码龄20年 60粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值