首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Struts2 - Validation

2012-12-27 
Struts2 -------------------- Validation转自:http://blog.csdn.net/anyoneking/archive/2007/08/09/1733

Struts2 -------------------- Validation
转自:http://blog.csdn.net/anyoneking/archive/2007/08/09/1733885.aspx

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文件中,内容如下:



我们看看上面的配置文件,首先每一个validatior都必须有一个type属性,type属性的值为我们前面定义的validator的name。

Message提供了校验出错的信息,message有一个属性key,通过可以可以找到i18n文件定义的内容,但是key并不是必须的。Message体内部的消息为默认消息,当i18n文件中不存在时表示该消息。消息中可以使用${}来引用被校验的对象例如:${foo},${bar}

5.6节:Validator和Field Validator

Field Validator用来校验一个字段,例如:



校验的顺序:首先Validator,其次Field Validator,但是在Validator或者Field Validator执行的过程中,顺序按照xml文件中的定义。短路的意思是,一旦一个短路的校验出错,其余后续的校验将不再进行。例如上述的顺序是:

1)Plain Validator 1

2)Plain Validator 2

3)Field Validators for email field

4)Field Validators for email2 field

由于Validator 2是短路的,一旦Validator 2校验出错,则email和email2都不会进入校验过程。

5.8节:validate方法

ActionSupport实现了Validatable接口,这个接口中定义了一个validate方法,通过重写validate方法可以完成更详细的校验,例如:

public void validate() {  User user = getUser();  if (StringUtils.isBlank(user.getName())) {    addActionError(getText("user.name.empty"));  }  if (StringUtils.isBlank(user.getAddress())) {    addActionError(getText("user.address.empty"));  }}


ActionSupport同时也实现了ValidationAware接口,该接口提供了addActionError等输出错误消息的方法。

热点排行