如果要使用Struts2的验证框架,首先要开启这个拦截器。在文档中是这样介绍的:
默认的拦截器堆栈defaultStack已经在开启验证。在创建自己的interceptor-stack时一定要包括validation和workflow拦截器。
<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>
添加此属性validate="true"之后,服务器返回此页面的时候就会生成一个js文件进行校验,那么这里就是客户端校验了,但是客户端支持的校验器只有几种。
<%@ 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>
但是在生成出的js文件中并没有对date类型的字段校验。
可见Struts2中并不是所有的服务器端校验都可以转换成客户端校验。客户端校验仅仅支持如下几种校验器:
required validator 必填校验器
requiredstring validator 必填字符串校验器
stringlength validator 字符串长度校验器
regex validator 表达式校验器
email validator 邮件校验器
url validator 网址校验器
int validator 整数校验器
double validator 双精度数校验器
struts2.3.4内置的13种校验器:
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
分享到:
相关推荐
Struts2输入校验总结 Struts2输入校验
struts2校验器,字段,非字段校验器的语法规则……
NULL 博文链接:https://chaoyi.iteye.com/blog/2161948
struts2输入校验 对指定方法进行输入校验
struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结
Struts2输入校验,Struts2提供了功能强大的输入校验机制,通过Struts2内建的输入校验器,应用无需书写任何代码,即可完成大部分的校验功能,并可以同时完成客户端和服务器端的校验。
一个struts2的校验器的例子
struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...
NULL 博文链接:https://younglibin.iteye.com/blog/460071
用struts2做一个自定义密码检验器,密码既要包括数字又要包括字母。自定义校验器的使用方法和预定义校验器的使用方法相同
Struts2数据校验与国际化,有validate()方法校验,有validateXxx()方法校验,有配置文件校验;国际化:有英,香港,内地
Struts2的校验框架 Struts2的校验框架 Struts2的校验框架
Struts2校验框架应用
struts2自定义校验器实现,希望对初学者有所帮助。
Struts 2 输入校验
struts2校验器类型详解 配合我的名称为 : Struts2总结-2 资源看
利用struts技术,用校验器校验用户提交信息的一个简单的用户注册登录的例子。用的数据库是2005的
本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。