第五章 Validation
5.1节:校验类型和配置方法说明
从Struts2 校验框架在验证的场所上可以分为:客户端校验和服务端校验。
客户端校验是指,在HTML画面上自动生成JavaScript校验代码,在用户提交到服务器之前在客户端浏览器中进行校验。默认位客户端校验。
服务端校验是指,在数据提交到服务器上之后,在Action处理之前,对客户但提交的数据进行校验。
从Struts2校验框架的配置上可以分为:Java Annotation配置和XML配置文件配置
Java Annotation配置是指,使用Java Annotation语法,在Java源代码上标记需要校验的内容,和校验的方式。
XML配置文件配置是指,使用XML配置文件配置需要校验的内容和校验方式。
5.2节:Validator与Validation
Validation指校验,Validator指谁来校验。
在Struts2框架中Validator必须在系统中注册,如果没有注册,系统使用默认的注册,这些validator注册文件在xwork的jar文件中,内容如下:
<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节:Validation与Intercepter
Validation使用名字叫做validator的Intercepter,在默认情况下,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第五章所涉及的工具涵盖了从编码、设计、调试到部署的整个开发流程,熟练掌握这些工具将使开发者的工作更为高效,同时也提升了网页的质量和用户体验。
第五章 Validation(数据格式验证)..276 第六章 Internationalization(I18N:国际化)..........................283 struts1.x...283 一、开发struts1应用的基本步骤...283 二、Struts的工作流程.......................
第五章 Validation(数据格式验证)..276 第六章 Internationalization(I18N:国际化)..........................283 struts1.x...283 一、开发struts1应用的基本步骤...283 二、Struts的工作流程.......................
- **ARPANET**:作为第一个真正意义上的计算机网络,ARPANET对现代网络的发展起到了关键作用。 - **技术创新**:讨论了ARPANET中的关键技术突破及其对后续网络发展的影响。 - **挑战与解决**:分析了在构建ARPANET...
《TensorFlow实战》第五至第八章的源代码涵盖了深度学习框架TensorFlow的多个核心概念和技术。这四个章节的源代码提供了丰富的实践示例,帮助读者深入理解如何利用TensorFlow进行模型构建、训练以及优化。以下是这些...
本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...
本书第三章详细介绍了错误模型,分类了不同的传输错误类型,并探讨了冗余技术的应用。书中列举了多种编码方式,如奇偶校验码,旨在提高数据传输的可靠性。通过学习这一章节,读者可以掌握如何在设计协议时加入有效的...
- **分组交换技术**:第一批网络采用分组交换技术,这一技术能够有效地利用网络资源,提高传输效率。 - **X.25与DECnet**:早期重要的网络协议包括X.25和DECnet等,这些协议奠定了现代网络通信的基础。 **2.3 协议...
### 第五章知识点总结 #### 一、文档中应列出并描述所有项目所需交付成果的文档是什么? 在软件项目管理中,明确项目范围是至关重要的一步。为了确保项目的顺利进行,需要有一个文档来清晰地定义项目的边界以及所...
Java开发实训课程中的SpringMVC框架技术教程涵盖了多个章节,其中第五章重点讲解了数据校验。SpringMVC是Spring框架的一个模块,专门用于构建Web应用程序的MVC(Model-View-Controller)架构。在实际的Java开发中,...
这一部分的内容主要集中在第三章,可能涵盖了数据库连接、数据查询、数据展示以及用户交互等关键知识点。 1. **数据库连接**: - ADO.NET:C#中用于数据库操作的主要库,包括System.Data.SqlClient或System.Data....
这章可能包含如何定义、配置和使用拦截器,以及常见的内置拦截器如Params、Validation和Stack等的用法。 3. **Tiles视图集成**:Tiles框架允许我们创建可重用的页面组件,第16章可能讲解如何将Tiles与Struts2结合,...
6. 客户端验证(Client-Side Validation)、服务器端验证(Server-Side Validation) 7. `EnableClientScript` 8. `RegularExpression` 了解并熟练掌握这些验证控件的使用,可以有效地防止恶意数据输入,提高网站的...
本章我们将深入探讨jQuery的基本操作,包括元素选取、属性操作、样式调整以及动画效果的实现。 1. **元素选取** jQuery提供了一系列方法来选取HTML元素,如`$()`函数,它是jQuery的核心,可以接受CSS选择器、HTML...
第12章可能详细讲解了如何创建和使用自定义拦截器,以及常用的内置拦截器如params、validation、i18n等。 4. **模型-视图-控制器(MVC)架构**:Struts2遵循MVC设计模式,使得业务逻辑、数据和展示分离。本章可能...
通过阅读《MFC窗口程序设计》第七章,你将能熟练地创建、管理和控制对话框窗口,提升你的Windows应用开发技能。书中可能还会介绍如何使用书中的源码作为参考,帮助理解对话框的生命周期、控件交互以及MFC如何将资源...
2. **动态验证**:使用XML配置文件(通常位于`struts-config.xml`或`validation.xml`),定义每个表单字段的验证规则。例如,检查长度、格式、范围等。 3. **校验流程**:当用户提交表单时,Struts会调用ActionForm...
在本节中,我们将深入探讨"MFC程序设计轻松入门第14章"的主题,主要关注MFC库在ODBC数据库程序开发中的应用。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它封装了Windows API,使得Windows应用...
5. **第14章:处理文件上传**:讲解了如何在Spring MVC中处理文件上传,包括文件限制、多文件上传以及文件存储策略。 6. **第15章:RESTful Web服务**:介绍了如何使用Spring MVC创建RESTful API,包括HTTP方法、...