`
kobexing933
  • 浏览: 120325 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

第五章 Validation

5.1节:校验类型和配置方法说明

Struts2 校验框架在验证的场所上可以分为:客户端校验和服务端校验。

客户端校验是指,在HTML画面上自动生成JavaScript校验代码,在用户提交到服务器之前在客户端浏览器中进行校验。默认位客户端校验。

服务端校验是指,在数据提交到服务器上之后,在Action处理之前,对客户但提交的数据进行校验。

Struts2校验框架的配置上可以分为:Java Annotation配置和XML配置文件配置

Java Annotation配置是指,使用Java Annotation语法,在Java源代码上标记需要校验的内容,和校验的方式。

XML配置文件配置是指,使用XML配置文件配置需要校验的内容和校验方式。

5.2节:ValidatorValidation

Validation指校验,Validator指谁来校验。

Struts2框架中Validator必须在系统中注册,如果没有注册,系统使用默认的注册,这些validator注册文件在xworkjar文件中,内容如下:

<validators>

<validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>

<validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>

<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>

<validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>

<validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>

<validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>

<validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>

<validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>

<validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>

<validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>

<validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>

<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>

<validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>

</validators>

自己需要注册自己的Validator时,可以使用上述相似的内容,这个文件需要放在WEB-INF/classes目录下,文件的名字叫validators.xml

一旦自己定义了validators.xml文件,系统就不会在加载默认的Validators文件,所以在Validators.xml中需要拷贝默认的内容。

5.3节:ValidationIntercepter

Validation使用名字叫做validatorIntercepter,在默认情况下,struts2已经定义了这个Intercepter,我们在不加声明的情况下就可以使用Validation了。

5.4节:使用Java Annotation配置校验

import com.opensymphony.xwork2.validator.annotations包提供了一些必要的Annotation用来配置校验信息。

这些内容包括:

枚举类型

ValidatorType

Field 校验字段

Simple 校验其他

Annotation(标注)类型

Validation

用来标记一个类需要被校验

ConversionErrorFieldValidator

字段转换出错

DateRangeFieldValidator

日期范围校验

DoubleRangeFieldValidator

Double类型范围校验

EmailValidator

Email地址校验

ExpressionValidator

使用一个OGNL表达式的校验,功能非常强大

FieldExpressionValidator

针对一个字段的使用OGNL表达式的校验

IntRangeFieldValidator

Int类型范围校验

RegexFieldValidator

正则表达式校验

RequiredFieldValidator

必填字段校验

RequiredStringValidator

必填String校验,

StringLengthFieldValidator

字符串长度校验

UrlValidator

URL校验

Validations

可以组合上述的各种校验类型以满足更多的需求。

VisitorFieldValidator

可以将Action中的对象的属性的校验方法定位到已经定义的对象原有的校验方法

CustomValidator

ValidationParameter

两个类一起完成自定义的校验

示例:

package com.jpleasure;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.validator.annotations.FieldExpressionValidator;

import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;

import com.opensymphony.xwork2.validator.annotations.StringLengthFieldValidator;

import com.opensymphony.xwork2.validator.annotations.Validation;

import com.opensymphony.xwork2.validator.annotations.ValidatorType;

@Validation()

public class RegisterAction extends ActionSupport {

private String name;

private String password;

private String rePassword;

private String mail;

private String description;

public String getName() {

return name;

}

@RequiredFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "name is required")

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

@RequiredFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "password is required")

@StringLengthFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "password must has proper legnth",

minLength = "5", maxLength = "12")

public void setPassword(String password) {

this.password = password;

}

public String getRePassword() {

return rePassword;

}

@RequiredFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true,

message = "input password again please!")

@StringLengthFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "password must has proper legnth",

minLength = "5", maxLength = "12")

@FieldExpressionValidator(expression = "password eq rePassword",

message = "two password must match")

public void setRePassword(String rePassword) {

this.rePassword = rePassword;

}

public String getMail() {

return mail;

}

@RequiredFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "mail is required")

public void setMail(String mail) {

this.mail = mail;

}

public String getDescription() {

return description;

}

@RequiredFieldValidator(type = ValidatorType.FIELD,

shortCircuit = true, message = "description is required")

public void setDescription(String description) {

this.description = description;

}

public String execute() throws Exception {

return SUCCESS;

}

}

5.5节:使用XML配置Validation

Xml配置文件与Action的关系为:

SomeAction.java – SomeAction-validation.xml

且与SomeAction.class处在相同的目录中。

SimpleAction-validation.xml文件示例:

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="bar">

<field-validator type="required">

<message>You must enter a value for bar.</message>

</field-validator>

<field-validator type="int">

<param name="min">6</param>

<param name="max">10</param>

<message>

bar must be between ${min} and ${max}, current value is ${bar}.

</message>

</field-validator>

</field>

<field name="bar2">

<field-validator type="regex">

<param name="regex">[0-9],[0-9]</param>

<message>

The value of bar2 must be in the format "x, y", where x and y are between 0 and 9

</message>

<span style

分享到:
评论

相关推荐

    HTML第五章-工具

    在HTML第五章中,我们主要探讨的是在网页制作过程...综上所述,HTML第五章所涉及的工具涵盖了从编码、设计、调试到部署的整个开发流程,熟练掌握这些工具将使开发者的工作更为高效,同时也提升了网页的质量和用户体验。

    Java/JavaEE 学习笔记

    第五章 Validation(数据格式验证)..276 第六章 Internationalization(I18N:国际化)..........................283 struts1.x...283 一、开发struts1应用的基本步骤...283 二、Struts的工作流程.......................

    J2EE学习笔记(J2ee初学者必备手册)

    第五章 Validation(数据格式验证)..276 第六章 Internationalization(I18N:国际化)..........................283 struts1.x...283 一、开发struts1应用的基本步骤...283 二、Struts的工作流程.......................

    Design amd Validation of Computer Protocols

    - **ARPANET**:作为第一个真正意义上的计算机网络,ARPANET对现代网络的发展起到了关键作用。 - **技术创新**:讨论了ARPANET中的关键技术突破及其对后续网络发展的影响。 - **挑战与解决**:分析了在构建ARPANET...

    tensorflow实战第5-8章节源代码

    《TensorFlow实战》第五至第八章的源代码涵盖了深度学习框架TensorFlow的多个核心概念和技术。这四个章节的源代码提供了丰富的实践示例,帮助读者深入理解如何利用TensorFlow进行模型构建、训练以及优化。以下是这些...

    struts2深入详解源码1-5章

    本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...

    Design and validation of computer protocols

    本书第三章详细介绍了错误模型,分类了不同的传输错误类型,并探讨了冗余技术的应用。书中列举了多种编码方式,如奇偶校验码,旨在提高数据传输的可靠性。通过学习这一章节,读者可以掌握如何在设计协议时加入有效的...

    Design and Validation of Computer Protocols

    - **分组交换技术**:第一批网络采用分组交换技术,这一技术能够有效地利用网络资源,提高传输效率。 - **X.25与DECnet**:早期重要的网络协议包括X.25和DECnet等,这些协议奠定了现代网络通信的基础。 **2.3 协议...

    第五章answer.md

    ### 第五章知识点总结 #### 一、文档中应列出并描述所有项目所需交付成果的文档是什么? 在软件项目管理中,明确项目范围是至关重要的一步。为了确保项目的顺利进行,需要有一个文档来清晰地定义项目的边界以及所...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第5章 数据校验 (共26页).pptx

    Java开发实训课程中的SpringMVC框架技术教程涵盖了多个章节,其中第五章重点讲解了数据校验。SpringMVC是Spring框架的一个模块,专门用于构建Web应用程序的MVC(Model-View-Controller)架构。在实际的Java开发中,...

    使用C#开发数据库应用程序(C#WinForms)5

    这一部分的内容主要集中在第三章,可能涵盖了数据库连接、数据查询、数据展示以及用户交互等关键知识点。 1. **数据库连接**: - ADO.NET:C#中用于数据库操作的主要库,包括System.Data.SqlClient或System.Data....

    Struts2.1权威指南光盘源代码第16章

    这章可能包含如何定义、配置和使用拦截器,以及常见的内置拦截器如Params、Validation和Stack等的用法。 3. **Tiles视图集成**:Tiles框架允许我们创建可重用的页面组件,第16章可能讲解如何将Tiles与Struts2结合,...

    第5章ASP验证控件.doc

    6. 客户端验证(Client-Side Validation)、服务器端验证(Server-Side Validation) 7. `EnableClientScript` 8. `RegularExpression` 了解并熟练掌握这些验证控件的使用,可以有效地防止恶意数据输入,提高网站的...

    第10章 jQuery的基本操作_jquery_

    本章我们将深入探讨jQuery的基本操作,包括元素选取、属性操作、样式调整以及动画效果的实现。 1. **元素选取** jQuery提供了一系列方法来选取HTML元素,如`$()`函数,它是jQuery的核心,可以接受CSS选择器、HTML...

    Struts2.1权威指南光盘源代码第12章

    第12章可能详细讲解了如何创建和使用自定义拦截器,以及常用的内置拦截器如params、validation、i18n等。 4. **模型-视图-控制器(MVC)架构**:Struts2遵循MVC设计模式,使得业务逻辑、数据和展示分离。本章可能...

    《MFC窗口程序设计》第七章 对话框窗口

    通过阅读《MFC窗口程序设计》第七章,你将能熟练地创建、管理和控制对话框窗口,提升你的Windows应用开发技能。书中可能还会介绍如何使用书中的源码作为参考,帮助理解对话框的生命周期、控件交互以及MFC如何将资源...

    struts课堂资料\第四章(标签、验证)2

    2. **动态验证**:使用XML配置文件(通常位于`struts-config.xml`或`validation.xml`),定义每个表单字段的验证规则。例如,检查长度、格式、范围等。 3. **校验流程**:当用户提交表单时,Struts会调用ActionForm...

    MFC程序设计轻松入门第14章

    在本节中,我们将深入探讨"MFC程序设计轻松入门第14章"的主题,主要关注MFC库在ODBC数据库程序开发中的应用。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它封装了Windows API,使得Windows应用...

    完整的spring in action 中文版 10到18

    5. **第14章:处理文件上传**:讲解了如何在Spring MVC中处理文件上传,包括文件限制、多文件上传以及文件存储策略。 6. **第15章:RESTful Web服务**:介绍了如何使用Spring MVC创建RESTful API,包括HTTP方法、...

Global site tag (gtag.js) - Google Analytics