在struts中使用Validator框架

用Multisim仿真石英晶体振荡电路:从等效模型到频响曲线实战 本文通过Multisim软件,从构建石英晶体等效电路模型入手,详细演示了如何仿真分析其电抗频率特性曲线,并实战搭建与调试皮尔斯振荡电路。文章深入探讨了振荡必须工作在串联与并联谐振点之间感性区的原因,为电子设计者提供了从理论到仿真的完整可视化学习路径。 阅读详情

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

在用Struts中用这个框架,需加入这两个包,用起来感觉还不错。
下面介绍一下。
Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。在struts应用中,需放到web-inf目录下。
1.validator-rules.xml
这个文件包含了一组验证规则,对所有struts应用都适用。一般情况不用修改这个文件,除非要修改或扩展默认规则。如果要给应放到另一个xml文件中,而不是直接添加到validator-rules.xml文件中,这样当Validator升级时,不用修改validator-rules.xml文件。
2.validator.xml文件
这个文件是针对于具体struts应用的,他可以为应用中的ActionForm配置验证规则。
而不用编码实现验证。
例如一个验证登陆form的例子,要求用户名必须填写,秘密要求必填、最大、最小长度
及其内容的要求。

Java代码
  1. <form-validation>   
  2.     <global>   
  3.         <!-- 密码由数字、26个英文字母或者下划线组成的字符串  -->   
  4.         <constant>   
  5.             <constant-name>pwd</constant-name>   
  6.             <onstant-value>^/w+$</onstant-value>   
  7.         </constant>   
  8.     </global>   
  9.     <formset>   
  10.         <form name="loginForm">   
  11.             <!-- 这里的用户名使用邮箱,验证时使用正则表达式进行验证 -->   
  12.             <field property="user.userId" depends="required">   
  13.                 <arg0 key="user.userId" />   
  14.             </field>   
  15.             <field property="user.userPwd" depends="required,minlength,maxlength,mask">   
  16.                 <!-- msg name="mask" key="errors.invalid" /-->   
  17.                 <arg0 key="user.userPwd" />   
  18.                 <arg1 name="minlength" key="${var:minlength}" resource="false" />   
  19.                 <arg2 name="maxlength" key="${var:maxlength}" resource="false" />   
  20.                 <var>   
  21.                     <var-name>mask</var-name>   
  22.                     <var-value>^/w+$</var-value>   
  23.                 </var>   
  24.                 <var>   
  25.                     <var-name>minlength</var-name>   
  26.                     <var-value>6</var-value>   
  27.                 </var>   
  28.                 <var>   
  29.                     <var-name>maxlength</var-name>   
  30.                     <var-value>20</var-value>   
  31.                 </var>   
  32.             </field>   
  33.         </form>   
  34.     </formset>   
  35. </form-validation>  
<form-validation>
	<global>
		<!-- 密码由数字、26个英文字母或者下划线组成的字符串  -->
		<constant>
			<constant-name>pwd</constant-name>
			<onstant-value>^/w+$</onstant-value>
		</constant>
	</global>
	<formset>
		<form name="loginForm">
			<!-- 这里的用户名使用邮箱,验证时使用正则表达式进行验证 -->
			<field property="user.userId" depends="required">
				<arg0 key="user.userId" />
			</field>
			<field property="user.userPwd" depends="required,minlength,maxlength,mask">
				<!-- msg name="mask" key="errors.invalid" /-->
				<arg0 key="user.userPwd" />
				<arg1 name="minlength" key="${var:minlength}" resource="false" />
				<arg2 name="maxlength" key="${var:maxlength}" resource="false" />
				<var>
					<var-name>mask</var-name>
					<var-value>^/w+$</var-value>
				</var>
				<var>
					<var-name>minlength</var-name>
					<var-value>6</var-value>
				</var>
				<var>
					<var-name>maxlength</var-name>
					<var-value>20</var-value>
				</var>
			</field>
		</form>
	</formset>
</form-validation>


validator.xml和validator-rules.xml文件的语法不在这里说明。

3.Validator插件
为了在struts中用validator,可以用插件方式加载Validator框架,
需在struts配置文件中配置ValidatorPlugIn插件,同时写明两个xml文件的路径。
应用启动时,Strust会加载这个插件,并调用他的init()方法,init()方法根据pathnames加载相应的validator-xml,validator.xml文件,把验证信息读入到内存中。

Java代码
  1. <plug-in className="org.apache.struts.validator.ValidatorPlugIn">   
  2.         <set-property    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"  
  3.             property="pathnames" />   
  4.     </plug-in>  
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property	value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
			property="pathnames" />
	</plug-in>


4.Validator和ActionForm
Validator框架不能直接org.apache.struts.action.ActionForm。应采用ActionForm的两个子类
ValidatorActionForm和ValidatorForm
DynaValidatorActionFrom继续自DynaValidatorForm
支持动态在ActionFrom中使用Validator框架
ValidatorFormActionForm继承ValidatorForm
支持在标准ActionForm中使用Validator框架。

DynaValidtaorForom和ValidatorForm类都实现了validator()方法,如果验证失败,就会返回包含错误消息的ActionMessage对象,并把该对象添加到ActionErrors集合对象中,由validator方法最后返回ActionErrors对象。
ValidatorForm有一个子类ValidatorActionForm
ValidatorForm
Strust配置文件的<action>元素的name属------>validator.xml文件<form>元素的name属性
ValidatorActionForm
Strust配置文件的<action>元素的path属------>validator.xml文件<form>元素的name属性
Validator框架提供这两个类目的在于可以更加精确的控制执行验证的条件。
例如
loginForm表单对应两个验证规则A、B。对应login、cancel两个动作。
如果对于这两个动作都要执行规则A、B。则可以扩展一个ValidatorFom类loginForm
然后配置

Java代码
  1. <formset>   
  2. <form name=”loginForm”>   
  3.     验证规则A   
  4.     验证规则B   
  5. .</form>   
  6. ….   
  7. </formset>  
<formset>
<form name=”loginForm”>
	验证规则A
	验证规则B
.</form>
….
</formset>


如果对于用户的login动作,执行规则A。对于cancel动作执行B规则。则可以扩展一个ValidatorActionFom类loginForm
然后配置

Java代码
  1. <formset>   
  2. <form name=”login”>   
  3.     验证规则A   
  4. .</form>   
  5. <form name=”cancel”>   
  6.     验证规则B   
  7. .</form>    
  8. </formset>  
<formset>
<form name=”login”>
	验证规则A
.</form>
<form name=”cancel”>
	验证规则B
.</form> 
</formset>


而DynaValidatorForm和DynaValidatorActionForm,区别和ValidatorFrom和ValidatorActionForm的区别一样

5.在validator框架中使用JavaScript
默认情况下,validator框架在服务器端执行表单验证。也可以在客户端验证。
如果在客户端验证,需要使用struts的<html:javascript>标签,他能在jsp页面中生成用于客户端验证的JavaScript的脚本。
1) 在validator-rules.xml文件的<validator>元素中配置<javascript>元素
默认struts框架的validator-rules.xml文件已经包含了javascript子元素。
也可以将这些javascript集中放到一个validator.js的文件中,也页面中引入

Java代码
  1. <script language="Javascript1.1" src="js/validator.js"></script>  
<script language="Javascript1.1" src="js/validator.js"></script>


2) 在Jsp页面中包含<html:javascript>
<html:javascript formName=”loginForm”> 这个标签的form的name属性制定需要验证的表单名字,他能够访问为表单配置的验证规则的javascript元素,把包含的脚本写到jsp页面中
,生成validateLoginForm的函数,负责执行验证逻辑
3) 对需要验证的表单定义onsubmit事件
4)

Java代码
  1. <html:form action="manageContract.do" onsubmit="return validateContractForm(this);">  
<html:form action="manageContract.do" onsubmit="return validateContractForm(this);">


5) 用户在表单上提交后,就会调用<html:javascript>
标签生成的js脚本validateLoginForm函数,执行验证。如果验证失败,就会弹出对话框提示,不会提交的服务器端。

小结
使用步骤
1) 创建扩展ValidatorForm或ValidatorActionForm类的ActionForm,如果使用动态ActionForm,则不用扩展DynaValidatorForm或DynaValidatorActionForm类的子类,可以直接进行第二步
2) 在struts文件中配置form和action元素
3) 把validator框架使用的文本信息添加到应用的Resource Bundle中
4)

Java代码
  1. <message-resources parameter="com.web.ApplicationResources" />  
<message-resources parameter="com.web.ApplicationResources" />


5) 在validatorxml文件中为表单配置验证规则
6) 在struts配置文件中配置validatorPlugIn插件

Java代码
  1. <plug-in className="org.apache.struts.validator.ValidatorPlugIn">   
  2.     <set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />    </plug-in>  
	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />	</plug-in>


红外与可见光融合避坑指南:LLVIP数据集实测6大算法效果对比 本文基于专为弱光视觉设计的LLVIP数据集,对GTF、DenseFuse、FusionGAN、IFCNN等6种主流红外与可见光图像融合算法进行了深度实测与对比。通过客观指标与可视化分析,揭示了算法在极端弱光下易出现特征丢失的共性问题,并探讨了融合图像对下游目标检测任务的实际增益,为工程选型与算法调优提供了实用指南。 阅读详情

相关推荐

树莓派Bookworm系统避坑指南:3种方法解决pip install报错externally-managed-environment

本文详细解析树莓派Bookworm系统中pip install报错externally-managed-environment的成因,并提供三种实用解决方案:使用虚拟环境(venv)隔离项目依赖、通过pipx管理全局Python工具,以及理解风险后的系统安装方法。帮助开发者安全高效地管理Python环境,避免系统冲突。

android的专栏 766

Commons-Validator

Commons-Validator(一)     Commons -Validator包用来把验证规则程序提取出来,以供重复使用。这个包可以使用在Struts中,也可以独立的应用在任何其它的应用中。用户可以通过 java类的方式自定义验证方法,也可以在配置文件中通过正则表达式配置验证方法。它不但支持服务器端的验证,客户端的验证也支持,具体需要使用tag把 相应的js方法写入相应的页面中。 一、综

2068

《AI大模型评测与智能测试》

第三篇“实践蓝图”(第6-7章)着眼于测试领域AI应用,重点介绍了RAG、AI Agent开发及构建端到端智能测试系统的方法。本书聚焦AI时代的“质量”核心,以“AI赋能测试”(AI For Testing)与“AI模型评测”(Testing For AI)为双轮驱动。内容不仅深入剖析如何科学度量AI大模型的内在质量,还系统讲解如何利用AI赋能传统软件测试,帮助读者贯通从模型原理、评测到应用开发的全链路知识。

酌沧 1141

Struts Validator验证框架

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

Tom Studio (汤姆工作室) 914

PySide6 vs PyQt6:新手如何根据Python版本选择GUI库?附版本兼容性测试

本文针对Python GUI开发新手,详细对比了PySide6与PyQt6的核心差异,并提供了基于Python 3.8至3.12等不同版本的兼容性实测数据与选择建议。文章重点分析了版本选择策略,帮助开发者根据自身Python环境、项目需求(如与matplotlib集成)及许可证考量,做出最合适的决策,并附有安装验证与避坑指南。

weixin_29094539的博客 703

写给小白的“具身智能”入门科普

智能”,大家都懂,也就是AI。那么,什么是“具身”?“具身”是一个很小众的名词,通常都出现在哲学、认知科学领域。它的英文叫Embodied,是embody的过去式和过去分词。em-表示“进入,使……”,-body表示“身体”。组合起来,就是“使……进入身体”。Embodied Intelligence(具身智能),顾名思义,就是“使智能进入身体”、“给智能一个身体”的意思。那么,具身智能,是不是就是“AI+身体”呢?这样说并不准确。

欢迎来到我的博客 1823

在Struts中使用Validator框架

在Struts中使用Validator框架      每个应用程序都有责任确保它们插入到后台资料库的数据是合法有效的,毕竟,如果这些应用程序所依赖的数据一旦遭到了破坏,那将是灾难性的,那应用程序还能拿什么来使自己正常运转呢?比如说,使用正规关系数据库的一个应用程序,数据库中的每个字段都有自己一定的规则和约束,来保证存储在其中的数据在一定程度上的正确性。任何要使用后台资料库数据的应用程序都有责任保护

sumongh我们在一起 738

fMRI数据处理:从DICOM到NIFTI(下)

上一篇我们完成了对原始DICOM的数据整理,将其整理为了BIDS目录结构。作为从从DICOM到NIFTI的最后一篇,当然是介绍如何批量将DICOM格式转NIFTI格式啦!从DICOM到NIFTI系列就完成啦!撒花★,°.°★。从核磁机器把数据拷回来——到整理成BIDS格式——到批量转格式;我们fMRI数据处理的第一步就算是正式迈出去啦!接下来的内容,敬请期待吧~

weixin_44933894的博客 2079

Struts的validator框架验证

        经过为期近两个月的项目练习,了解了开发一个实际项目它的具体流程及在每一个阶段都做哪些工作。在技术上进一步一步熟悉了Struts框架中的相关内容。在这里我想谈一下有关Validator框架验证和Struts标签的相关内容。1.        Validator验证框架Validator框架验证已经克服在ActionForm Bean的validate()方法中写验规则

技术交流 991

YOLO26涨点改进 | 全网独家,注意力创新改进篇 | Arxiv2025 | YOLO26引入MSLA多尺度线性注意力模块,高效提取多尺度特征和建模长程依赖,含多种创新改进,助力有效涨点

本文提出了一种多尺度线性注意力模块(MSLA)来优化YOLO26模型。MSLA通过并行使用不同尺寸的深度可分离卷积(3×3至9×9)提取多尺度特征,并结合线性注意力机制高效建模全局依赖关系。该模块显著提升了模型对多尺度目标的检测能力,同时保持了轻量化特性。实验表明,MSLA能有效增强小目标检测和复杂场景下的分割精度。文章详细介绍了MSLA的网络结构、核心优势及实现代码,并提供了两种集成MSLA的YOLO26改进方案,为实时目标检测任务提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 302

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

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

 Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架。 Validator主要依赖两个jar包 Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换、过滤、和分割功能。 Commons-validator.jar:提

logicbiz的专栏 816

Android Camera驱动开发工程师面试指南:技术深度与实战准备

摘要:上海移远通信招聘Android Camera驱动开发工程师,主要负责Camera传感器驱动开发维护、高通/展锐平台底层开发及技术预研。岗位要求1年以上嵌入式开发经验,精通Camera传感器驱动调试,熟悉高通平台Camera架构及Android HAL框架。具备HAL开发、算法集成或车载/支付行业经验者优先。工作内容以Driver/HAL开发为主,需具备硬件接口评估能力。该职位接受Linux/单片机背景人员转型。

郑伟强dev的专栏 281

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

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

pcdaan的专栏 985

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

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

Devexpress16.2.6破解工具

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

Struts Validator 框架的使用

 Struts1.1及以上版本在提供了DynaActionForm的同时,配合数据验证的需要,还提供了表单输入自动验证的功能,即使用Validator验证框架。   在使用Validator验证框架时,需要用到二个基于XML的配置文件进行验证规则的配置,一个是validator-rules.xml,另一个是validation.xml。这两个文件应该部署在相应的WEB应用中的WEB-INF文件夹下

Angelo Lee's Blog 934

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Struts中使用Validator框架

 Struts中使用Validator框架  每个应用程序都有责任确保它们插入到后台资料库的数据是合法有效的,毕竟,如果这些应用程序所依赖的数据一旦遭到了破坏,那将是灾难性的,那应用程序还能拿什么来使自己正常运转呢?比如说,使用正规关系数据库的一个应用程序,数据库中的每个字段都有自己一定的规则和约束,来保证存储在其中的数据在一定程度上的正确性。任何要使用后台资料库数据的应用程序都有责任保护它们

No-Way|老狼's专栏 872

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

struts validator验证框架

struts validator验证框架 1、配置: * 加入国际化配置在struts-config.xml文件中,如: * 提供国际化资源文件 * 引入validator插件在struts-config.xml文件中,如: * 提供validation.xml和validator_rules.xml文件,将此文件拷贝到WE...

xxp3369的专栏 253
上一篇: 学习ActionMessages与ActionMessage的心得
下一篇: Struts框架中的表单验证与资源文件
AngleKill
博客等级 码龄18年 20粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值