在Struts中验证框架的运行机制

光通信仿真入门:手把手教你用VPI和Matlab搭建第一个联合仿真系统(含避坑指南) 本文详细介绍了如何使用VPI和Matlab搭建光通信联合仿真系统,涵盖软件配置、链路搭建、数据交互等关键环节,并提供常见问题的解决方案。特别适合初学者快速掌握光通信仿真技术,避免常见错误,提升仿真效率。 阅读详情
用commons Validator添加验证
为了在Struts中使用验证,执行以下几步:
1. 在struts-config.xml中添加ValidatorPlugin。
2. 创建validation.xml,指定lastName为必填字段。
3. 把DynaActionForm改用DynaValidatorForm。
4. 仅为save()方法设置验证(validation)。
5. 在message.properties中添加validation errors。
 
 
在struts-config.xml中添加ValidatorPlugin
配置Validatorp plugins,添加以下片断到struts-config.xml:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
从这里你可以看出,Va l i d a t o r会查找W E B - I N F下的两个文件v a l i d a t o r- r u l s . x m l和
validation.xml。第一个文件,validator-rules.xml,是一个标准文件,作为Struts的一部分发
布,它定义了所有可用的验证器(validators),功能和客户端的javascript类似。第二个文件,
包含针对每个 form的验证规则。
创建validation.xml,指定lastName为必填字段
validation.xml文件中包含很多DTD定义的标准元素。但你只需要如下所示的<form>和<field>,
更多信息请参阅Validator的文档。在web/WEB-INF/validation.xml中的form-validation标签
之间添加form-set元素。
<formset>
<form name="userForm">
<field property="user.lastName" depends="required">
 
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
<arg0 key="user.lastName"/>
</field>
</form>
</formset>
把 DynaActionForm 改为 DynaValidatorForm
把struts-config.xml中的DynaActionForm改为DynaValidatorForm。
<form-bean name="userForm"
type="org.apache.struts.validator.DynaValidatorForm">
...
为save()方法设置验证(validation)
使用Struts DispatchAction弊端是,验证会在映射层(mapping level)激活。为了在list和edit
页面关闭验证。你必须单独建一个"validate=false"的映射。例如,AppFuse的UserAction有
两个映射:"/editUser"和"/listUser"。然而有一个更简单的方法,可以减少xml,只是多了一些
java代码。
1. 在"/user"映射中,添加validate="false" 。
2. 修改UserAction中的save()方法,调用form.validate()方法,如果发现错误,返回编辑页
面。
if (log.isDebugEnabled()) {
log.debug("entering 'save' method...");
}
// run validation rules on this form
ActionMessages errors = form.validate(mapping, request);
if (!errors.isEmpty()) {
saveErrors(request, errors);
return mapping.findForward("edit");
}
DynaActionForm userForm = (DynaActionForm) form;
当dispatchAction运行时,与附带一个属性的两个映射相比,这样更加简洁。但用两个映射
也有一些优点:
•验证失败时,可以指定转向"input"属性。
•在映射中可以添加"role"属性,可以指定谁有访问权限。例如,任何人都可以看到编辑
(edit)页面,但只有管理员可以保存(save)。
3. 运行ant deploy重新载入(reload),尝试添加一个新用户,不要填写lastName。你会看到
一个验证错误,表明lastName是必填字段,如下所示:
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
图 2.10. 运行ant deploy命令的结果
Struts Validator的另一种比较好的特性是客户端验证(client-side validation)。
4. 在f o rm标签( w e b / u s e r Fo r m . j s p )中添加" o n s u b m i t "属性,在f o rm末尾添加
>html:javascript>。
<html:form action="/user" focus="user.firstName"
onsubmit="return validateUserForm(this)">
...
</html:form>
<html:javascript formName="userForm"/>
现在如果运行ant deploy,试图保存一个lastname为空的用户,会弹出一个JavaScript提
示:"Last Name is required"。这里有一个问题,这个带JavaScript的form把validator
的JavaScript功能都载入了页面。再好的方法是,从外部文件导入Javascript。参见第5章。
恭喜你!你已经开发一个web应用程序,它包含数据库交互,验证实现,成功信息和错误信息的
显示。第4章,将会把这个转向使用Spring框架。第5章中,会添加异常处理,文件上传,邮件发
送等特性。第6章会看一下JSP的替代技术,在第7章,会探讨DAO的不同实现,包括iBATIS,JDO
和Spring的JDBC。
 
RC滤波电路实战解析:无源与有源设计的性能对比与应用选择 本文深入解析了RC滤波电路的核心原理,重点对比了无源滤波电路与有源滤波电路的性能差异。文章通过实测波形与仿真数据,详细阐述了两者在带载能力、频率响应精度、噪声特性等方面的优劣,并提供了清晰的应用选择指南,帮助工程师根据信号属性、负载条件和性能要求做出最优设计决策。 阅读详情

相关推荐

HFSS本征模求解:谐振特性分析与工程实践

本征模求解是电磁仿真中的基础技术,用于分析无源谐振系统的固有特性。其核心原理是通过求解麦克斯韦方程组的特征值问题,获得谐振频率、品质因数(Q值)及电磁场分布等关键参数。在5G滤波器设计、雷达谐振腔优化等高频场景中,精确的本征模分析能有效避免模式干扰,提升器件性能。HFSS作为行业标准工具,提供了完整的本征模求解工作流,涵盖边界条件设置、模式识别、场分布可视化等关键环节。针对多模耦合、模式纯度评估等工程难题,结合参数化扫描和场重叠积分等高级技巧,可显著提升微波器件设计效率。

weixin_27918373的博客 336

Struts2笔记系列验证框架

Struts2 Struts验证框架 Strut2验证框架的使用非常简单,只需要在需要验证的Action类同包下,添加一个XML文件,命名规则为Action全类名-validation.xml,其内容是为这个用户输入的信息在Action的execute运行之间进行验证。 Action全类名-validation.xml的内容格式为: &lt;validators&gt; &lt;...

ld3205的博客 170

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

我的struts的学习过程

大齐的学习笔记 76

【Python机器学习】零基础掌握RFECV特征选择

通过应用算法,有效地识别了影响购买意愿的关键特征(浏览时长和点击数)和历史货币流通的主要因素(年代、人口和货币流通量)。这样的特征选择不仅提高了模型的解释能力,还可能用于电商推荐系统和历史研究的优化。优点总结,这种方法可以高效地找出对目标变量有最大影响的特征,进而可以用于各种实际应用场景,如电商推荐和历史研究。优点名称对应描述说明高解释性易于理解哪些特征最为重要泛化性能强通过交叉验证提高模型的稳健性应用场景多样可用于电商、金融、历史研究等多个领域。

Mr数据杨 1998

Test软件:Keysight二次开发_(3).安装与配置开发环境

在开始进行Keysight软件的二次开发之前,首先需要确保您的开发环境已经正确安装和配置。本节将详细介绍如何安装和配置必要的开发工具和依赖项,以便您能够顺利进行开发工作。

2401_87715305的博客 1414

Struts2学习文档

Struts2学习文档,主要包含了: 1 Struts2运行机制... 1 1.1 myEclipse和struts2的一些操作技巧... 2 2 NameSpase 命名空间、动态方法调用(DMI)和通配符... 2 3 Action三种形式接受参数... 3 4 访问外部元素... 5 5 路径问题... 8 6 简单数据验证... 9 7 Result....

weixin_33972649的博客 94

mongodb在游戏开发领域的优势

目前游戏服务器使用mysql作为数据库的较多,然而,使用mongodb来作为存储层,在某些方面比mysql更为方便和适合。

littleschemer的博客 1700

Struts验证框架

    在最开始使用Struts验证框架的时候,仅仅只使用到了其中的一小部分,也是很基础的一些验证,并没有完全发挥它的作用,其实struts验证框架远不止如此。所以在此总结一下自己对Struts验证框架的一些应用技巧。如果用好了,它的功能是非常强大的。    先说一下版本吧,建议大家使用Struts1.2的版本,因为它的功能最强,也最稳定。我使用的IDE环境:Eclipse3.2.1+MyEc

robin622的专栏 1637

SillyTavern本地AI聊天平台部署与调优全指南

大型语言模型(LLM)作为当前人工智能领域的核心技术,通过其强大的自然语言理解和生成能力,正在深刻改变人机交互方式。其工作原理基于Transformer架构,通过海量数据训练,学习语言的统计规律与语义关联。这项技术的核心价值在于,它能够作为通用基础,赋能于多样化的下游应用,实现个性化的智能对话与内容创作。在工程实践中,如何高效、灵活且低成本地部署和利用这些模型,成为开发者与爱好者的关键需求。本地化部署方案,特别是结合如Ollama、KoboldCPP等推理引擎,提供了数据隐私保障与可控的硬件成本。Silly

weixin_42520448的博客 433

vue2/3 - 详细对接海康监控实时视频预览和录像回放功能,vue接入使用海康视频监控播放器实时推流等功能,支持hik/rtsp/rtmp/hls/ws取流协议(详细教程与示例代码,一键复制开箱即用

vue2,vue3,海康,vue海康视频监控,海康开放平台,如何接入海康的实时监控,海康威视,Vue实现海康监控视频播放,vue3对接海康视频监控播放、回放的方法流程,实现海康H5视频插件播放视频的实例,web网页接入海康,海康威视的视频vue的录像回放和实时预览,前端vue3项目接入海康威视h5player.js播放器,vue2接入海康威视视频监控平台,使用海康监控H5视频播放,对接海康视频监控,海康视频web插件,web前端在vue中通过海康插件嵌入视频,实现实时预览,vue3海康监控播放器组件,vue

✅ 精选推荐文章 1万+

关于struts2验证框架

struts2验证框架分为字段(field校验--面向字段、字段优先)校验器和非字段(validator--校验面向validator、validator优先)校验器. 通过验证框架验证,只需要删除掉原来validate()方法中的内容(这篇blog是基于"struts2输入验证--validate()验证"的),再增加一个xml文件即可:一个Action对应一个验证xml(RegisterAc

小张的编程之旅 487

手把手教你学Simulink——基于Simulink的多用户MIMO系统仿真建模示例

多用户MIMO概述在多用户MIMO系统中,基站配备多个天线,可以同时与多个用户进行通信。利用空间复用技术,不同用户的信号被分配到不同的空间流上,从而实现频谱资源的高效利用。多用户MIMO的核心挑战包括信道估计、波束成形设计以及干扰管理。关键技术点波束成形:通过调整发射信号的相位和幅度,在特定方向上增强信号强度并减少干扰。信道估计:获取每个用户的信道状态信息(CSI),用于优化波束成形矩阵。调制与解调:选择合适的调制方式(如QPSK、16-QAM等)以适应不同用户的信道条件。干扰消除。

MHD0815的博客 271

Struts2 验证框架的应用

最近因为用到了Struts2的验证框架,就在网上找到了一篇教程,但在使用时感觉有些地方作者没有提到,或是解释清楚,或是没有强调,因此在这稍作补充:      1、一般验证不能通过时会回到提交前的页面并显示错误信息,validation框架是通过在struts.xml中添加来实现的,这一点教程中没有说清楚      2、要显示错误信息必须在jsp页面相应位置添加标签      3、val

卷柏人生 1469

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Struts2验证框架的基本实现

在学习此框架之前,我们先了解下一个好的验证框架都需要考虑什么: 1.验证功能的验证性 2.验证功能的可扩展性 3.验证与业务逻辑的分离 一.使用Struts2中的验证框架 非常简单,只需要添加一个XML,这个XML命名为Action类名-validation.xml (实现了1,2,3),放在需要验证的Action类同包中,其内容为这个Action的execute方法运行之前要对用户的输入进行各种...

c1776167012的博客 306

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Struts2验证框架

1.Struts2提供了验证框架,功能强大而且简单易用,帮助用户做了很多事情,使得用户不必从头开发。那么一个好的验证框架需要考虑哪些因素呢?(1)验证功能的复用性     比如都是对一个int数据类型的验证,验证的是它的数据范围,如果验证功能抽象的好,就可以复用同样的验证功能,省去重复开发的麻烦。  (2)验证功能的可扩展性           是不是可以自己扩展验证功能,并保证扩展

618

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

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

struts2 验证框架

java代码: 查看复制到剪贴板打印 public class UserModel {       private String account;       private String name;       private int age;       public String getAccount() {           

DOVEty的专栏 917

Struts Validator验证框架

validator验证框架Validator框架能够克服在ActionForm Bean中以编程方式进行数据验证的局限,它允许Struts应用灵活的配置验证规则,无需编程。Validator框架主要依赖两个JAR文件:jakarta-oro.jar和commons-validator,.jarValidator框架采用两个基于XML的配置文件来配置验证规则。这两个文件为validator-rule

Tom Studio (汤姆工作室) 914

Struts2之验证框架

1:Struts2提供了验证框架,功能强大而且简单易用,帮助用户做了很多事情,使得用户不必从头开发。那么一个好的验证框架需要考虑哪些因素呢?*验证功能的复用性比如都是对一个int数据类型的验证,验证的是它的数据范围,如果验证功能抽象的好,就可以复用同样的验证功能,省去重复开发的麻烦。 *验证功能的可扩展性 是不是可以自己扩展验证功能,并保证扩展功能和原有的框架功能一样使用。*验证与业务逻辑分离

至尊宝 555

Struts2的验证框架简单吗?

Struts2验证框架是基于Struts拦截器开发的,具有良好的扩展性;一般的验证都可以支持。现在我们以一个注册验证的例子进行总结: 新建一个model,User: 1 public class User { 2 private String userName; 3 private String name; 4 private int age; 5...

weixin_30252155的博客 97

struts验证框架,验证两次输入密码相同

          在struts2的验证框架里面,提供了默认的验证器。有时候特殊的验证要重写validator方法,网上一些人说验证密码相同要重写,不过还是给我找到了一种不重写的方法。代码如下:   truepassword should not be nullthe two passwords should be the sa

岁月无痕(veizz)的学习记录 3811

详解Struts中Validator验证框架的使用

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架。 Validator主要依赖两个jar包 Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换、过滤、和分割功能。 Commons-validator.jar:提供了一个简单、可扩展的验证框架,包含了通用的验证方法和验证规则。 在用Struts中用这个框架,需加入这两个包,用起来感觉还不错。

pcdaan的专栏 985

struts验证框架的使用

服务器端的校验有两种,一种是重写ActionSupport的validate方法,另外一种是使用xwork验证框架(网上一般都直接说struts验证框架)。其中后者比较简单(通过xml配置验证条件),适合大多数情况下使用。今天,我们就来做个简单的例子。废话不多说,步骤如下: 1. 新建一个Web项目,名为StrutsValidatorDemo。在index.jsp中创...

baiyou1503的专栏 163

struts2 手动验证和框架验证

手动验证 struts.xml <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN" "http://struts.apache.org/dtds/struts-2.3.d...

vincent_duan的专栏 180

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 147
上一篇: 由CSS+div来替代表格的布局
下一篇: web2.0的杂谈---说明
caiguoxing
博客等级 码龄20年 14粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值