Struts2输入校验(XML方式)

Posted 临渊启明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2输入校验(XML方式)相关的知识,希望对你有一定的参考价值。

主要介绍struts2的XML配置方式输入校验,结合实例进行说明。

代码结构:

image

关键代码:

RegistAction.java
regist.jsp
struts.xml

使用XML方式检验需创建一个XML配置文件,位置在对应的Action同级目录下,命名规则为:Action名-validatioin.xml。

校验文件可以有两种写法,一种是字段校验,一种是非字段校验。字段校验就是以字段为主,在对应字段配置下添加该字段的校验器,非字段校验就是先定义好校验器,在校验器下添加字段。如下:

RegistAction-validation.xml
RegistAction-validation2.xml

同时字段校验和非字段校验这两种方法也可以混搭使用,即在同一个校验配置文件中配置这两种。

校验器名词type可选值可以通过查找xwork的jar包下的default.xml,位置在:展开xwork-core-2.3.24.1.jar->com.opensymphony.xwork2.validator.validators.default.xml。

default.xml

文件中name就是校验器名称,对应的就是type可选值,class是校验器对应的实现类,校验器配置的param参数就是实现类中的属性。

image

以下是实例程序运行结果:

imageimageimage

imageimageimage

imageimageimage

校验的执行顺序:内置类型转换->XML校验器校验->validateToRegist->validate->toRegist

校验文件中message的国际化方式:

在Action同级目录下添加一个ActionName.properties文件,定义key-value,然后,在message标签的key属性中填充key值,例如:

imageimageimage

结果如下:

imageimage

这时可以给定义多个ActionName.properties文件以适应浏览器使用的不同语言包,例如:ActionName_en_US.properties、ActionName_zh_CN.properties,这样程序就会根据浏览器选择的语言包自适应提示信息,如果找不到对应语言包的properties文件,将使用默认ActionName.properties的配置。

imageimageimage

运行结果:

imageimageimage

原理解析:

校验器基类FieldValidatorSupport,是所有校验器的父类,提供了fieldName和type属性。

FieldValidatorSupport.class(转)struts2:数据校验,通过XWork校验框架实现(validation.xml)

Struts2的输入校验

Struts2输入校验

Struts2请求参数校验

Struts2的输入校验——校验规则文件的编写

笔记:Struts2 输入校验