验证框架 | 学习笔记

简介: 快速学习验证框架,介绍了验证框架系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门验证框架】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7314


验证框架

 

内容介绍:

一、struts2的验证框架

二、步骤

三、总结

 

一、struts2的验证框架

打开文档,进入 struts2的 docs 文档,找到 index.html 的文档,在 Getting Started中可选择 Tutorials 和 Guides。Tutorials 中有 Getting Started,其中有每步骤的教程。

Guides 中 Configuration(配置)、Interceptors(拦截器)、Results(结果集)、Localization(本地化)、Validation(验证。而Validation中的Refistering Validators 有很多类型。

加入 RegisterValidateAction.java 以便进行下一步操作,用验证器验证的话也需要继承 ActionSupport,在 src 下的 cn.sxt.action中建立一个相同目录的 xml 文件,即为文件规则。

所以新建一个 RegisterValidateAction-validation.xml 文件,验证规则都会有 dtd,将<IDOCTYPE validat ors PUBLIC “-//Apache Struts//XWork Validator 1.0.3//EN”以及“http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd”>进行拷贝。

其次 dtd 是可以查看的,1.0.3的根元素为<validators>,而 validators 有两种验证方式:一种为编写验证器,另外一种则为验证表达域。

首先进行 field 验证,与表单名称有关,写入<field name=”name”>,再跟上

<field- validator type=”requiredstring”></field- validator>,如果name 不是字符串则会报错。

而 int 有最小值或最大值,但字符串一般验证的为长度。

validators 中找到 default.xml 文件,在文件中定义了许多验证器,

如:

required、long 等,其定义了 param、Field 等,在 param 中 trim 表示为去除空格的作用,而在 RequiredStringValidator 中的 doTrim 根据 set 去进行设置,

所以跟上<param name=”trim”>true</param>,验证有无空格以便于去除空格,跟上<message>用户名必填</message>用来验证 param。

这时需将 RegisterAction 改为 RegisterValidateAction,进行测试,不填用户名,结果为得出不能找到 register 方法。

这时将 register 方法删除再次进行测试,消息并没有进行显示,这时加上<s:fielderror></s:fielderror>,再进行提交,用户名必填则会显示。

填写验证规则时,验证属性则写入 field,验证其他则写入其验证器,而验证长度时,找到 Stringlength,

再找到 StringLengthFieldValidator,其中可以看到 doTrim(去除空格)、最小长度、以及最大长度的属性,则跟上 <field- validator type=”stringlength”></field- validator>

使用验证框架时,则会通过案例找到配置文件,再找到验证器,再找到验证器的类来执行,再通过验证规则中的 validate 方法来执行,执行不成功则会通过 Fielderror 来进行下一步操作,

则跟上<param name=”trim”>true</param>,再跟上<param name=”maxLength”>10</param>,

再跟上<param name=”minLength”>4</param>,

再跟上<message>用户名去掉2端空格后长度为${minLength}到${maxlength}</message>后进行提交,将用户名进行修改后,结果显示为去掉2端空格后长度为4到10,siggy 也可以顺利通过。

跟上<field name=”age”>来验证年龄,首先要清楚验证的是表达域中的内容。

接着跟上<field-validator typr=”int”>来验证参数的大小,再跟上<param name=”min”>1</param>,

再跟上<param name=”max”>150</param>,

再跟上<message>年龄范围为1~150</message>后进行提交验证,填入年龄,结果为正确的。

如果要验证正则表达式,而 default.xml 中提供了 regax 用来验证。CDATA 中包括字符串数据而不是将特殊符号作为文本。密码和确认密码时会用到 foo 与 bar。

 

二、步骤

使用验证框架的步骤:

在对应的 action 的包下添加一个验证框架的配置文件,

改文件名为:

actionName-validation.xml


三、总结

案例:

(1)Jsp 页面:

<s:fielderror></s:fielderror>

<form action=”register.action”method=”post”>

用户名:<input type=”text”name=”name”/><br>

密码:<input type=”password”name=”pwd”/><br>

年龄:<input type=”text”name=”age”/><br>

生日:<input type=”text”name=”birthday”/><br>

<input type=”submit”value=“登录”/>

</form>

(2)Action 类:

public class RegisterAction extends ActionSupport{

private String name;

private String pwd;

private int age

private Date birthday;

@Override

public String execute() throws Exception {

System.out.println(“execute”);

return Action.SUCCESS;

}

public String register() {

System.out.println(“register”);

return Action.SUCCESS;

}

public void validateRegister(){

System.out.println(“validate age”);

if(age>100| |age<1){

this.addActionError(“年龄不合法“);

}

}

public void validate(){

System System.out.println(“validate”);

}

public String getName(){

return name;

}

public void setName(String name){

this.name = name;

}

public String getPwd(){

return pwd;

}

public int getAge(){

return age;

}

public void setAge(int age){

this.age = age;

}

public Date getBirthday(){

return birthday;

}

public void setBirthday(Date birthday){

this.birthday = birthday;

}

}

(3)Struts.xml 配置文件:

<package name=”default”extends=”struts-default” namesapece=”/”>

<!-- <action name=”register”

class=”cn.sxt.action.RegisterAction”method=” register”>  

<result>/index.jsp</result>

<result name=”input”>/resgister.jsp</result>

</action> -->

<action name=”register”

class=”cn.sxt.action.RegisterAction”>

< result>/index.jsp</result>

<result name=”input”>/resgister.jsp</result>

</action>

</package>

(4)RegisterValidateAction-validation.xml 验证文件:

<?xml version=”1.0”encoding=”UTF-8”?>

<IDOCTYPE validat ors PUBLIC “-//Apache Struts//XWork Validator 1.0.3//EN”

http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd”><validators>

<field name=”name”>

<field-validator type=”requiredstring”>

<param name=”trim”>true</param>

<message>用户名必填</message>

</ field-validator>

<field-validator type=”stringlength”>

<param name=”trim”>true</param>

<param name=”maxLength”>10</param>

<param name=”minLength”>4</param>

<message>用户名去掉2端空格后长度为${minLength}到${maxlength}</message>

</field-validator>

</field>

<field name=”age”>

<field-validator typr=”int”>

<param name=”min”>1</param>

<param name=”max”>150</param>

<message>年龄范围为1~150</message>

</field-validator>

</field>

</ validators>

相关文章
|
6月前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
475 1
|
6月前
|
XML Java 数据格式
进阶注解探秘:深入Spring高级注解的精髓与实际运用
进阶注解探秘:深入Spring高级注解的精髓与实际运用
70 2
|
6月前
|
前端开发 Java 应用服务中间件
快速上手:探索Spring MVC的学习秘籍!
快速上手:探索Spring MVC的学习秘籍!
|
6月前
|
JSON 前端开发 Java
开发必备技能:探索Spring MVC请求映射和参数绑定的奇妙之旅!
开发必备技能:探索Spring MVC请求映射和参数绑定的奇妙之旅!
|
6月前
|
Java Spring
手写spring 框架——第三篇(注解的方式)
手写spring 框架——第三篇(注解的方式)
53 0
|
6月前
|
XML Java 程序员
Spring基础篇:高级注解编程
Spring基础篇:高级注解编程
|
XML Java API
SpringMVC进阶-校验框架
SpringMVC进阶-校验框架
67 0
|
Java Spring 容器
Spring框架:第六章:注解功能
Spring框架:第六章:注解功能
121 0
Spring框架:第六章:注解功能
|
前端开发 JavaScript 数据安全/隐私保护
Struts2利用验证框架实现数据验证(十一)上
Struts2利用验证框架实现数据验证(十一)
188 0
Struts2利用验证框架实现数据验证(十一)上
|
XML 前端开发 Java
Struts2利用验证框架实现数据验证(十一)下
Struts2利用验证框架实现数据验证(十一)
115 0
Struts2利用验证框架实现数据验证(十一)下