struts2用户输入验证

一、用户输入验证

1、手工编程验证

动作类中的所有方法进行验证:

步骤:

a、动作类继承ActionSupport

b、覆盖调用public void validate()方法

c、在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage)

如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行。

Struts2框架会返回到name=input的result

d、在name=input指定的页面上使用struts2的标签显示错误信息。<s:fielderror/>

动作类中指定的方法进行验证:

编写步骤与上面相同

验证方法书写有要求:

public void validateXxx()   Xxx代表的是要验证的动作方法名,其中要把动作方法名的首字母变为大写。

2、基于XML配置文件的方式:

动作类中的所有方法进行验证:

在动作类的包中,建立一个名称为:动作简单类名-validation.xml ,比如要验证的动作类名是UserAction   UserAction-validation.xml

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<!-- 内置验证器都是定义好的,在xwork-core.jar com.opensymphony.xwork2.validator.validators包中的default.xml文件中 -->
<field-validator type="requiredstring"><!-- 不能为null或者""字符串,默认会去掉前后的空格 -->
<message>用户名不能为空</message>
</field-validator>
</field>
</validators>

动作类中指定的方法进行验证:

配置文件的名称书写有一定要求。

动作类名-动作名(配置文件中的动作名)-validation.xml

UserAction-user_add-validation.xml

3、自定义基于XML的验证器

a、编写一个类,继承FieldValidatorSupport类。

b、在public void validate(Object object)编写你的验证逻辑

不符合要求的就向fieldErrors中放消息

c、一定注册你的验证器才能使用

在WEB-INF/classes目录下建立一个名称为validators.xml的配置文件,内容如下:

<validators>
    <validator name="strongpassword" class="cn.itcast.validators.StrongPasswordValidator"/>
</validators>

d、日后就可以像使用Struts2提供的16个验证器方式去使用了。

时间: 2024-10-13 01:36:09

struts2用户输入验证的相关文章

用户输入验证的集总

1 一.用户输入验证 2 1.编程方式: 3 动作类中的所有方法进行验证: 4 5 步骤: 6 a.动作类继承ActionSupport 7 b.覆盖调用public void validate()方法 8 c.在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage) 9 如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行. 10 Struts

用户输入验证

这里我们来讨论 用户输入验证的两种方式:基于手工编程验证.基于Xml文件验证. 一.基于手工编程: 1.验证该动作类的所有方法: (1).在struts.xml中,创建相关的动作类,在书写标签的时候,记得把input这个返回值也写上,因为一旦在数据类型转换或者验证失败,都回转到input对应的结果处理.(这里为什么有类型转换?因为在许多Mvc框架中,类型转换和验证是不分家的,看struts2的拦截器加载顺序,是先类型转换器,然后是验证器,最后就是方法的调用,这个顺序就是说,当调用方法的前两个动作

Struts2的输入验证(三)-短路验证与非字段验证

一.短路验证 若对一个字段使用多个验证器,默认情况下会执行所有的验证.若希望前面的验证器验证没有通过,后面的就不再验证,可以使用短路验证. 1)对同一个字段内的多个验证器,如果一个短路验证器验证失败,其他验证器不会继续校验 2)验证程序配置文件中<validator  …/> 元素和 <field-validator  …/> 元素可以指定一个可选的 short-circuit 属性,该属性指定该验证器是否是短验证器,默认值为 false. 1.示例:短路验证器 要求:为age字段

Struts2之输入验证

摘要:Struts2提供了安全的服务器验证方法,使用action中的validate方法即可 下面将展现简单的输入验证怎么写 1,表单index.jsp代码如下: 1 <%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%> 2 <%@ taglib uri=&

Struts2的输入验证(二)-声明式验证证框架的原理

一.Struts2 声明式验证原理解析 1.Struts2 默认的拦截器栈中提供了一个 validation 拦截器,validation 拦截器负责加载和执行已注册的验证程序. 其运行时序图如下: 2.每个具体的验证规则都会对应具体的一个验证器,有一个配置文件把验证规则名称和验证器关联起来了,而实际上执行验证的就是那个验证器.  该文件位于 com.opensymphony.xwork2.validator.validators 下的 default.xml. 如下图所示: 3.配置文件与验证

Struts2的输入验证(四)-自定义验证器与编程式验证

一.自定义验证器 1.实现步骤: 1)定义一个验证器的类 自定义验证器必须实现 Validator 接口,由于ValidatorSupport 和 FieldValidatorSupport 实现了 Validator 接口,因此可以继承ValidatorSupport 或 FieldValidatorSupport Ⅰ. 若需要普通的验证程序,可以继承 ValidatorSupport 类: Ⅱ. 若需要字段验证程序,可以继承 FieldValidatorSupport 类: Ⅲ. 若验证程序

struts标签解决用户输入验证的解决方案

首先新建 User测试类 package com.cx.verify; /** * Created by cxspace on 16-7-14. */ public class User { private String userName; private String pwd; private String email; public String getUserName() { return userName; } public void setUserName(String userNam

用户输入验证【提升篇】

本页主要基于:长度验证.相等验证.非空验证.合法验证,调用实现功能. 1 //长度验证 2 private bool ValidateLength(String str,int minLength,int maxLength) 3 { 4 //判断是否大于规定的最小值和小于规定的最大值 5 if (str.Length <= maxLength && str.Length >= minLength) 6 { 7 return true; 8 } 9 else 10 { 11 r

[原创]java WEB学习笔记70:Struts2 学习之路-- 输入验证,声明式验证,声明是验证原理

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------