`
一日一博
  • 浏览: 229896 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

阅读更多

如果要使用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中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章可能是关于如何使用Struts2的内置校验机制以及自定义校验规则的探讨。 Struts2的校验框架...

    struts2 短路校验(客户端校验)

    总的来说,Struts2的客户端校验是一种有效提升用户体验并减轻服务器负担的方法。通过合理的配置和编程,我们可以实现既快速又准确的数据校验。同时,理解和掌握Struts2的校验框架对于任何Java Web开发者来说都是至关...

    Struts2输入校验总结

    5. **内置校验器**:Struts2提供了丰富的内置校验器,覆盖了从简单的类型检查到复杂的数据验证。例如`required`用于检查字段是否为空,`int`和`double`用于数值类型检查,`email`用于电子邮件地址验证等。 综上所述...

    struts2输入校验

    在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但安全性较低,因为用户可以禁用JavaScript或绕过校验。服务器端校验则是在...

    struts2校验器

    struts2校验器,字段,非字段校验器的语法规则……

    Struts2的输入校验

    2. 客户端校验:Struts2支持在客户端进行输入校验,通常通过JavaScript实现,可以在表单提交前就捕获错误,提高用户体验。 3. 服务器端校验:当请求到达服务器时,Struts2会尝试调用`validateXxx()`方法,其中`Xxx`...

    struts2的自定义校验器例子

    在Struts2中,数据验证分为两种类型:客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户浏览器中进行,而服务器端验证则在服务器上执行,确保即使禁用JavaScript也能保证数据安全。本示例主要关注...

    struts2输入校验总结

    总结,Struts2的输入校验机制提供了手动和自动两种方式,结合配置文件和内置校验器,能够实现灵活且强大的数据校验,有效地防止了非法数据的流入,提升了系统的安全性。在实际开发中,开发者可以根据业务需求选择...

    struts2输入校验深入总结

    Struts2提供了多种方式进行输入校验,包括Action级别校验、拦截器级别校验以及基于Validator框架的校验。 二、Action级别校验 Action级别校验是在Action类中定义校验逻辑,通常通过在Action类的属性上添加注解实现...

    Struts2自定义校验框架

    要创建一个自定义校验器,需要继承`org.apache.struts2.validator.FieldValidatorSupport`类或者实现`org.apache.struts2.validator.Validator`接口。然后在自定义校验器中重写`validate()`方法,实现具体的校验逻辑...

    Struts2校验框架应用

    本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、以及如何在实际项目中实现数据验证。 **1. Struts2校验框架基础** Struts2的校验框架是基于Apache Commons Validator库的,它允许开发者定义校验...

    Struts2数据校验与国际化

    总结起来,Struts2的数据校验机制提供了多种方式确保数据质量,而其国际化功能则使得应用能够服务于全球用户。理解并熟练掌握这些机制,对于开发健壮、多语言的Web应用至关重要。在实际项目中,开发者可以根据需求...

    struts2的输入校验

    struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...

    Struts 2 数据校验功能及校验问题的解决方案

    Struts 2的数据校验还可以通过注解方式进行,使用@FieldCheck、@Validations等注解来指定字段的校验规则。这种方式更加直观,减少了代码量,但可能需要额外的库支持。 为了处理更复杂的数据校验场景,Struts 2支持...

    struts2校验器与校验框架精彩学习笔记

    Struts2提供了两种类型的校验器: - **FieldValidator**:针对单个字段进行验证,如上述的非空和长度限制。 - **ValidatorForm**:用于整个表单的验证,它可以访问所有字段并进行更复杂的验证逻辑,比如跨字段的...

    用struts2做一个密码校验器

    用struts2做一个自定义密码检验器,密码既要包括数字又要包括字母。自定义校验器的使用方法和预定义校验器的使用方法相同

    struts2校验器类型详解

    ### Struts2校验器类型详解 #### 一、Struts2内建校验器 在探讨Struts2校验器之前,我们首先需要了解这些校验器是如何被定义和集成到框架中的。如文中所述,Struts2的内建校验器主要位于`xwork-2.0.4.jar`压缩包中...

Global site tag (gtag.js) - Google Analytics