通过Struts 1.2提供的validwhen 验证器可以轻松的创建更加复杂灵活的表单验证。
比如说,我们要验证用户两次输入的密码是否相同,或是只有当用户填写表单项“姓氏”时,表单项“名字”才是必须的。
validwhen 需要声明一个叫test的var字段,这个变量的值是一个布尔型的表达式,比如:
<var-name>test</var-name>
<var-value>((orderLines[].partNumber == null) or (*this* != null))</var-value>
当布尔型表达式返回true时,验证才会成功。下边是允许发入该表达式的一些元素:
单引号或双引号括起来的字符串
十进制、十六进制或八进制表示的整形字面量
null 表示没有输入的空串
可以使用表单里的任何字段名字,如 customerAge
显式引用的索引字段,如childLastName[2]
隐式引用的索引字段,如childLastName[],表示使用与该字段相同的索引
字面量 *this* 表示当前被验证的表单
例:
下边这段代码表示:只有当sendNewsletter字段为空,或该字段emailAddress不为空时,该字段才有效
<field property="emailAddress" depends="validwhen">
<arg0 key="userinfo.emailAddress.label"/>
<var>
<var-name>test</var-name>
<var-value>((sendNewsletter == null) or (*this* != null))</var-value>
</var>
</field>
下边这个例子表示,只有相应的partNumber存在时,字段quantity才是必须的
下边这个例子表示,只有相应的partNumber存在时,字段quantity才是必须的
<field property="quantity" indexedListProperty="orderLines" depends="validwhen">
<arg0 key="orderform.quantity.label"/>
<var>
<var-name>test</var-name>
<var-value>((orderLines[].partNumber == null) or (*this* != null))</var-value>
</var>
</field>
下边这个例子表示,如果输入身高小于60英寸,则不能做nbaPointGuard
下边这个例子表示,如果输入身高小于60英寸,则不能做nbaPointGuard
<field property="nbaPointGuard" depends="validwhen">
<arg0 key="careers.nbaPointGuard.label"/>
<var>
<var-name>test</var-name>
<var-value>((heightInInches >= 60) or (*this* == null))</var-value>
</var>
</field>
分享到:
相关推荐
- `validwhen`: 当满足特定条件时,字段才有效。 - `minlength`和`maxlength`: 检查字段长度是否在指定范围内。 - `mask`: 验证输入是否匹配预设的正则表达式。 - `byte`, `short`, `integer`, `long`, `float`, `...
3. **validwhen(条件有效性验证)** - **命令说明**:此命令用于在特定条件下检查字段的有效性。与`requiredif`类似,但更侧重于验证值的有效性而非空性。 - **应用场景**: - 当某个字段的合法性取决于另一个...
高性能Bootloader及在线升级程序方案:STM32/DSP快速烧录Hex/Bin文件,底层协议解析与FLASH操作源码全解析,bootloader或在线升级程序方案,可提供上位机,不用跳线进入boot,可直接在线烧录hex或者bin文件,底层协议解析、FLASH操作源码以及开发文档,STM32或者DSP或者串口在线升级FPGA程序都可以或者其他类型MCU 目前DSP2803x、28004x以及28335均验证ok ,核心关键词:bootloader; 在线升级程序方案; 上位机; 不需跳线进入boot; 在线烧录hex/bin文件; 底层协议解析; FLASH操作源码; 开发文档; STM32; DSP; 串口在线升级FPGA程序; MCU; DSP2803x; 28004x; 28335。,基于STM32/DSP的在线升级与Bootloader方案:无需跳线,直接烧录Hex/Bin文件并支持协议解析和Flash操作源码开发文档
37_计算机二级office_演示文稿考点精讲_设置动画效果
2025最新《数字经济技能培训专题》考试题库及答案(通用版).docx
普铁高炉作业区危险源辨识与风险控制培训考试题及答案.docx
电机NVH分析的根原因查找与定子、转子谐波次数及电磁力波次对应关系表(Excel格式自动计算工具),电机NVH分析,根原因查找。 定子,转子谐波次数与电磁力波次数对应关系表。 excel格式,输入极槽等参数可以自动计算。 ,电机NVH分析; 根原因查找; 谐波次数; 电磁力波次数; 对应关系表; Excel格式; 极槽参数; 自动计算。,"电机NVH分析中,定转子谐波与电磁力波次数对应关系Excel工具开发"
Game Programming Gems 1 英文版 高清版PDF,带书签和OCR标注
基于ZigBee技术的鱼塘水质智能检测系统:实时数据无线传输至手机APP,独家定制设计,基于ZigBee的鱼塘水质检测系统 功能:1、通过终端ZigBee节点采集浊度,温度等水质数据,无线发送给ZIGBEE网关; 2、网关通过板载蓝牙模块将数据发送到手机APP; 3、手机端APP实时显示采集到的温度及浊度数据.。 独家设计,支持定制,欢迎洽谈设计本项目相关的任意项目设计 ,基于ZigBee的鱼塘水质检测系统; 无线数据采集与发送; 板载蓝牙模块; 手机端APP实时显示; 独家设计; 定制项目设计。,"ZigBee助力鱼塘监测:水质无线传输与智能监控系统"
步进电机闭环程序:西门子PLC与威纶通触摸屏实控,编码器监测丢步并报警,适合初学者学习教程,eb8000编程支持全系列机型,步进电机编码器闭环程序,西门子200PLC和威纶通触摸屏实控制步进电机本人自做威纶通触摸屏控制西门子200plc步进电机闭环程序,采用增量编码器查看是否存在丢步,若丢步大于10则报警,非常好的学习程序,带文字教程,适合初学者,威纶通采用eb8000编写,支持全系列机型 ,步进电机; 编码器闭环程序; 西门子200PLC; 威纶通触摸屏; 丢步检测报警; 文字教程; EB8000编写; 全系列机型支持。,“自编西门子PLC步进电机闭环程序,带EB8000界面防丢步报警教程”
高清电视音频解码的定点DSP 实现
基于单片机的电子万年历的设计论文资料
33_计算机二级office_演示文稿考点精讲_插入动作按钮
Matlab主动配电网优化重构程序:基于牛顿拉夫逊法的仿真实现与最优电源接入位置研究,matlab主动配电网优化重构程序 牛顿拉夫逊法的Matlab仿真程序 以网损费用最低作为目标函数,也可以改为其他目标,最终计算出最优电源接入位置,实现配电网的优化重构 有专门的文档说明和程序注释,好理解好上手 ,核心关键词:Matlab; 主动配电网优化重构程序; 牛顿拉夫逊法仿真; 网损费用最低目标函数; 最优电源接入位置; 配电网优化重构; 文档说明; 程序注释。,"MATLAB实现主动配电网优化重构:牛顿拉夫逊法仿真及多目标优化研究"
用AD激励的锁相环频率合成器
基于FPGA的双通道超声波信号发生器设计:实现方波、正弦波和三角波生成及电路原理图探究,基于FPGA的超声波信号发生器设计:程序和电路原理图,产生方波,正弦波和三角波,双通道。 ,基于FPGA的超声波信号发生器设计; 程序与电路原理图; 产生方波、正弦波和三角波; 双通道。,"FPGA双通道超声波信号发生器:方波、正弦波及三角波信号设计原理与实现"
UDS刷写上位机CAPL脚本定制开发:简易Panel界面+V公司CAN卡与oe软件联动,满足项目多样需求,UDS刷写上位机全套CAPL脚本,有简单panel界面,配合V公司CAN卡和oe软件即可实现刷写流程修改和上位机定制开发,满足各种项目需求。 代码非实物 ,UDS刷写; 上位机; CAPL脚本; 简单Panel界面; V公司CAN卡; 修改刷写流程; 上位机定制开发; 代码非实物,UDS刷写全套CAPL脚本,支持V公司CAN卡操作,面板简易界面定制开发解决方案
多点无线数据传输系统论文资料
经典永磁同步电机设计案例展示:技术参数与成熟方案的综合运用 该电机为高端量产型号,图纸详实齐全,转矩性能卓越,稳定性强。,经典37kw,3000RPM,112Nm, 6极36槽永磁同步电机(PMSM)设计案例(V型磁钢),该案例已制作样机,方案成熟,运行稳定,具有全套图纸,(图纸另外计算)可直接用于生产,齿槽转矩小(0.6Nm),转矩脉动小。 ,核心关键词:经典37kw;3000RPM;112Nm;6极36槽永磁同步电机(PMSM)设计;V型磁钢;方案成熟;运行稳定;全套图纸;齿槽转矩小(0.6Nm);转矩脉动小。,经典永磁同步电机设计案例:37kw-6极36槽V型磁钢电机,方案成熟稳定,可直接生产
新年快樂新年快樂大吉大利