Struts2的客户端校验方式及自带的13种校验器

[size=medium]
如果要使用Struts2的验证框架,首先要开启这个拦截器。在文档中是这样介绍的:
默认的拦截器堆栈defaultStack已经在开启验证。在创建自己的interceptor-stack时一定要包括validation和workflow拦截器。[/size]

<interceptor-stack name="defaultStack">
...
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>


[b]添加此属性validate="true"之后,服务器返回此页面的时候就会生成一个js文件进行校验,那么这里就是客户端校验了,但是客户端支持的校验器只有几种。[/b]

<%@ page contentType="text/html; charset=GBK" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>register</title>
</head>
<body>
<s:form action="login" validate="true">
<s:textfield name="username" label="用户名"/>
<s:textfield name="pass" label="密码"/>
<s:textfield name="repass" label="确认密码"/>
<s:textfield name="age" label="年龄"/>
<s:textfield name="high" label="身高"/>
<s:textfield name="email" label="邮箱"/>
<s:textfield name="website" label="个人主页"/>
<s:textfield name="birthday" label="生日"/>
<s:submit/>
</s:form>
</body>
</html>



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
<!-- required必填校验器 -->
<field name="repass">
<field-validator type="required">
<!-- 校验前去掉name属性的前后空格 -->
<param name="trim">true</param>
<message>必须再填一次密码!</message>
</field-validator>
</field>
<!-- requiredstring必填字串校验器和stringlength长度校验器 -->
<field name="username">
<field-validator type="requiredstring">
<!-- 校验前去掉name属性的前后空格 -->
<param name="trim">true</param>
<message>%{getText("validator.error.required", "姓名")}</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">0</param>
<param name="maxLength">15</param>
<message>长度必须在0和15之间</message>
</field-validator>
</field>
<!-- regex正则表达式校验器 -->
<field name="pwd">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>请输入密码</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的密码只能是字母和数组,且长度必须在4到25之间</message>
</field-validator>
</field>
<!-- int整数校验器 -->
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">100</param>
<message>年龄必须是${min}到${max}之间的整数</message>
</field-validator>
</field>
<!-- double双精度浮点校验器 -->
<field name="high">
<field-validator type="double">
<param name="min">1.0</param>
<param name="max">2.3</param>
<message>身高必须是${min}到${max}之间的小数</message>
</field-validator>
</field>
<!-- date日期校验器 -->
<field name="birthday">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-01-01</param>
<message>${getText("birthday.range")}</message>
</field-validator>
</field>
<!-- email邮件地址校验器 -->
<field name="email">
<field-validator type="email">
<message>邮箱格式不对</message>
</field-validator>
</field>
<!-- url网址校验器 -->
<field name="website">
<field-validator type="url">
<message>请填写正确的网址</message>
</field-validator>
</field>
</validators>

[size=medium]但是在生成出的js文件中并没有对date类型的字段校验。
可见Struts2中并不是所有的服务器端校验都可以转换成客户端校验。客户端校验仅仅支持如下几种校验器:[/size]
required validator 必填校验器
requiredstring validator 必填字符串校验器
stringlength validator 字符串长度校验器
regex validator 表达式校验器
email validator 邮件校验器
url validator 网址校验器
int validator 整数校验器
double validator 双精度数校验器

[color=blue][size=medium][b]struts2.3.4内置的13种校验器:[/b][/size][/color]


conversion validator
date validator
double validator
email validator
expression validator
fieldexpression validator
int validator
regex validator
required validator
requiredstring validator
stringlength validator
url validator
visitor validator

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值