常量有两种:一种是全局范围常量。一种是某个formset范围的常量。位置如下:
格式如下:
<form-validation>
<global>
<constant>
<constant-name>globalVarName</constant-name>
<constant-value>globalVarValue</constant-value>
</constant>
</global>
<formset>
<constant>
<constant-name>formsetVarName</constant-name>
<constant-value>formsetVarValue</constant-value>
</constant>
<form name="MyForm">
<field property="myfield"
depends="someRule,anotherRule">
<var>
<var-name>someRule</var-name>
<var-value>${globalVarName}</var-value>
</var>
<var>
<var-name>anotherRule</var-name>
<var-value>${formsetVarName}</var-value>
</var>
</field>
</form>
<formset>
<form-validation>
如果你有多个field元素要用到同一个值,则可以定义一个这个值的常量,这样就可以应用这个常量了
如果这个常量作用于整个应用程序则生命为global范围的常量。如果这个常量只作用于某个特定的form且被重复使用,则的定义它为formset 范围的常量。举例如下:
<form-validation>
<global>
<constant>
<constant-name>usernameMinLength</constant-name>
<constant-value>7</constant-value>
</constant>
</global>
<formset>
<constant>
<constant-name>nameMaxLength</constant-name>
<constant-value>40</constant-value>
</constant>
<form name="RegistrationForm">
<field property="username"
depends="required,minlength">
<arg key="prompt.username"/>
<arg key="${var:minlength}" name="minlength"
resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>${usernameMinLength}</var-value>
</var>
</field>
<field property="firstName"
depends="required,maxlength">
<arg key="prompt.firstName"/>
<arg key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>${nameMaxLength}</var-value>
</var>
</field>
<field property="lastName"
depends="required,minlength,maxlength">
<arg key="prompt.lastName"/>
<arg key="${var:minlength}" name="minlength"
resource="false"/>
<arg key="${var:maxlength}" name="maxlength"
resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>${nameMaxLength}</var-value>
</var>
</field>
</form>
<formset>
<formset-validation>
如果你使用mask验证规则严整表单的格式时,你只需要在一处定义这个格式的正则表达式。
n 用正则表达式验证表单字段
mask验证规则提供了基于正则表达式的验证机制,如:
<form name="ValidationTestForm">
<!-- Validate Social Security Number -->
<field property="ssn"
depends="required,mask">
<arg key="prompt.ssn"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
</var>
</field>
</form>
正则表达式使用通用符号描述并解析文本,使用它你可以验证数据是否符合指定的格式。
STRUTS框架通过mask验证规则使用正则表达式。可以在var元素中指定正则表达式。
<var>
<var-name>mask</var-name>
<var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
</var>
name属性必须是mask,value指定要使用的正则表达式。如果匹配则通过验证,否则验证失败。
如果你使用struts1.1及以后的版本,那么正则表达式必须以“^”开头,以“$”结尾。
|
举例:
^[0-9]{3}-[0-9]{2}-[0-9]{4}$
理解如下:
开头一个开头符号(^),,接着是三个0到9的字符({3}),接着是连接符号,接着是两个0到9的字符([0-9]),接着是一个连接符号(-),接着是四个0到9的字符([0-9]),,接着是一个结束符号($).
n requiredif:
在struts1.1Z中,如果一个字段的验证依赖于另一个字段,可用requiredif验证规则。
举例如下:
<!-- zipCode is required if city is null or state is null -->
<field property="zipCode" depends="requiredif">
<arg key="prompt.zipCode"/>
<var>
<var-name>field[0]</var-name>
<var-value>city</var-value>
</var>
<var>
<var-name>fieldTest[0]</var-name>
<var-value>NULL</var-value>
</var>
<var>
<var-name>field[1]</var-name>
<var-value>state</var-value>
</var>
<var>
<var-name>fieldTest[1]</var-name>
<var-value>NULL</var-value>
</var>
<var>
<var-name>fieldJoin</var-name>
<var-value>OR</var-value>
</var>
</field>
当city或state的值为空或不存在时,zipCode不能为空。
在struts1.1前要实现这样的功能必须自己写代码进行验证。
field[i]对应的var-value值代表一个表单属性:
<var>
<var-name>field[0]</var-name>
<var-value>property name</var-value>
</var>
fieldTest[i]代表测试类型:
<var>
<var-name>fieldTest[i]</var-name>
<var-value>test type</var-value>
</var>
测试类型有以下三种:
NULL:
字段为NULL或空字符串
NOTNULL:
字段不为NULL或空字符串
EQUAL:
字段值为一个指定的值
如果测试类型为EQUAL,则还需定义一个元素fieldValue[i]:
<var>
<var-name>fieldValue[i]</var-name>
<var-value>literal value</var-value>
</var>
如果这个属性是一个数字的,则字面值将被转换为数值。否则字面值将当作一个字符串。
如果依赖多个字段,则须用fieldJoin变量确定这多个字段的逻辑关系:
<var>
<var-name>fieldJoin</var-name>
<var-value>logical operator</var-value>
</var>
合法的value值为AND和OR,AND表示所有依赖的字段都必须符合fieldTest规定的类型时,要验证的数据不为空;OR表示所依赖的字段有一个符合要求时要验证的数据不为空。
在struts1.2中,requiredif已被validwhen代替。
n validwhen:
如下例表示当下列事实发生时,zipCode合法有效:
1. city和state属性不为空
2. zipCode不为空
<form name="AddressForm">
<field property="zipCode" depends="validwhen">
<arg key="prompt.zipCode"/>
<var>
<var-name>
test
</var-name>
<var-value>
(((city != null) and (state != null)) or (*this* != null))
</var-value>
</var>
</field>
<form name="AddressForm">
validwhen比requiredif功能更强大。requiredif表示“如果。。。这个字段不为空”。validwhen表示“当。。。时这个字段有效”。
*this*符号表示要验证的字段zipCode。
完整的举例如下:
n struts-config.xml:
<action
attribute="checkForm"
name="checkForm"
input="/validate/error.jsp"
path="/validate/check"
scope="request"
type="cn.rolia.struts.action.validate.CheckAction">
<forward name="success" path="/validate/success.jsp" />
</action>
<form-bean name="checkForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="zipCode" type="java.lang.String" />
<form-property name="province" type="java.lang.String" />
<form-property name="city" type="java.lang.String" />
</form-bean>
n CheckAction.java:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorForm checkForm = (DynaValidatorForm) form;// TODO Auto-generated method stub
return mapping.findForward("success");
}
}
n ApplicationResources.properties:
prompt.zipCode= zipCode
errors.required={0} is required.
/validate/error.jsp:
<body>
<html:errors/><br>
</body>
n /validate/input.jsp:
<html:form action="/validate/check">
<table>
<tr>
<td>所在省</td><td><html:text property="province"></html:text></td>
</tr>
<tr>
<td>所在市</td><td><html:text property="city"></html:text></td>
</tr>
<tr>
<td>邮政编码</td><td><html:text property="zipCode"></html:text></td>
</tr>
<tr>
<td><html:submit value="提交"/></td><td><html:reset value="清除"/></td>
</tr>
</table>
</html:form>
n /validate/success.jsp:
<body>
success<br>
<bean:write name="checkForm" property="zipCode"/><br>
</body>
validation.xml:
<form name="checkForm">
<field property="zipCode" depends="validwhen">
<arg0 key="prompt.zipCode"/>
<var>
<var-name>
test
</var-name>
<var-value>
(((city != null) and (province != null)) or (*this* != null))
</var-value>
</var>
</field>
</form>
n indexedListProperty
时间验证 date
希望验证一个时间字段是否符合某个特定的格式时使用date验证规则。如:
<field property="date1" depends="date">
<arg key="Date1" resource="false"/>
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
<field property="date2" depends="date">
<arg key="Date2" resource="false"/>
<var>
<var-name>datePatternStrict</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
<field property="dateTime" depends="date">
<arg key="DateTime" resource="false"/>
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yy HH:mm</var-value>
</var>
</field>
datePattern变量通过使用java.text.SimpleDateFormat指定字段的格式。
如果SimpleDateFormat能将字段值转换为日期格式,则验证通过,否则验证失败。
datePatternStrict要求字段值的长度要与模式的长度相同。
如模式为MM/dd/yyyy,则字段值5/10/1963代表May 10, 1963。如果使用datePattern则验证通过。如果使用datePatternStrict则验证不通过,因为也的部分是一个数字而不是格式指定的两个。
你可以使用mask验证对时间进行工详细的控制。
相关推荐
航空,汽车行业,simulink基于模型开发的确认和验证过程培训资料,内容详实,过程满足航空适航过程和汽车相关安全规定。
赠送jar包:jakarta.validation-api-2.0.2.jar; 赠送原API文档:jakarta.validation-api-2.0.2-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.2-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....
此函数创建两个元胞数组,一个包含训练数据,另一个包含测试数据。 测试样本大小由样本数除以所需的 K 值确定。 如果这些项不可整除,该函数将截断... 引用: https://en.wikipedia.org/wiki/Cross-validation_(统计)
赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
赠送jar包:validation-api-1.1.0.Final.jar; 赠送原API文档:validation-api-1.1.0.Final-javadoc.jar; 赠送源代码:validation-api-1.1.0.Final-sources.jar; 包含翻译后的API文档:validation-api-1.1.0....
It is recommended that the robustness of semiconductor devices and other components used in the EEM be assured using SAE J1879 OCT2007, Handbook for Robustness Validation of Semiconductor Devices in ...
赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
使用FormValidation进行表单验证,使用到了jQuery和Bootstrap框架等相关技术
Struts Validation框架浅尝,Struts Validation框架浅尝Struts Validation框架浅尝
validation验证zip,喜欢的可以下载。
Bean Validation 规范文档
使用spring validator 对bean进行类似js的校验 下载包 validation-api.jar hibernate-validator.jar
struct validation 框架包 最简单的例子
框架验证validation 框架验证validation
Struts2中Validation数据验证框架教程 struts2中validation框架_前台验证 struts2中validation框架_后台验证
赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....
赠送jar包:validation-api-1.1.0.Final.jar; 赠送原API文档:validation-api-1.1.0.Final-javadoc.jar; 赠送源代码:validation-api-1.1.0.Final-sources.jar; 包含翻译后的API文档:validation-api-1.1.0....
ssm框架validator应用jia包3个 hibernate-validator-5.0.1 jboss-logging-3.3.0 validation-api-1.0.0
validation-config.dtd