Struts数据验证---验证嵌套属性

有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下:

package data;

public class User

{

private String name;

private int age;

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

this.age = age;

}

}

在NewValidateAction类中加一个user属性,代码如下:

package action;

import com.opensymphony.xwork2.ActionSupport;

import data.User;

public class NewValidateAction extends ActionSupport

{

private String msg;

private int age;

private User user;

public String getMsg()

{

return msg;

}

public void setMsg(String msg)

{

this.msg = msg;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

this.age = age;

}

public User getUser()

{

return user;

}

public void setUser(User user)

{

this.user = user;

}

}

如果要验证NewValidateAction中的user属性,可以使用visitor验证器。操作过程如下:

首先在NewValidateAction-validation.xml中加入一个<field>标签,代码如下:

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

<!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="user">

<field-validator type="visitor">

<param name="context">abc</param>

<param name="appendPrefix">true</param>

<message>User:</message>

</field-validator>

</field>

</validators>

其中context参数将作为验证User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名为User-abc-validation.xml。这个文件要和User.class文件在同一个目录中。appendPrefix表示是否在字段里加user,如果为true,Struts2就会使用user.name在form提交的数据中查找要验证的数据。这个属性的默认值是true。如果出错,Struts2会将<message>标签中的信息加到User-abc-validation.xml文件中的相应错误信息前面。

User-abc-validation.xml文件的内容如下:

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

<!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="name">

<field-validator type="requiredstring">

<message>请输入name</message>

</field-validator>

</field>

<field name="age">

<field-validator type="int">

<param name="min">5</param>

<param name="max">20</param>

<message>

必须在 5至20之间

</message>

</field-validator>

</field>

</validators>

下面修改validate_form.jsp,代码如下:

<s:form validate="true" action="new_validate" namespace="/test" >

<s:textfield name="msg" label="姓名"  />

<s:textfield name="age" label="年龄"/>

<s:textfield name="user.name" label="姓名1"  />

<s:textfield name="user.age" label="年龄1"/>

<s:submit/>

</s:form>

时间: 2024-11-09 03:21:42

Struts数据验证---验证嵌套属性的相关文章

MVC验证13-2个属性至少输入一项

有时候,我们希望2个属性中,至少有一个是必填,比如: using Car.Test.Portal.Extension; namespace Car.Test.Portal.Models{ public class Person { public int Id { get; set; } public string Telephone { get; set; } public string Address { get; set; } }} .csharpcode, .csharpcode pre

spring+xml集成测试(准备数据和验证项的外部文件化)

Spring的集成测试 单位测试和集成测试,我想大家都做过,一般情况下,一般逻辑且不需要操作数据库的情况比较适合于单位测试了.而对于一个数据库应用来说,集成测试可能比单元测试更重要,你可以想象,一个互联网应用,不是增修数据,就是查询数据了,那么验证操作在数据记录上的影响就更为需要.如果在的应用中使用了spring,那么就可以利用spring集成测试框架了,其实它所做的工作就是加载配置文件并配置其中相关的信息,其中也包括数据源等,其次在验证完成之后,回滚对数据表的操纵,当然你也可以手动的设置为不回

MVVM架构~knockoutjs系列之扩展ajax验证~验证输入数据是否与后台数据相等

返回目录 在看这篇文章之前,你有必要先看我之前的文章,之前文章是将一个方法以参数的形式传给KO,然后返回一个真假值,去做验证,这类似于面向对象语言里的委托,在JS里我们叫它回调方法,本篇文章与前一文章不同,需要有两个参数,其一是远程方法的签名(JS方法),其二是已知要比较的数据(可能是加密后的密码数据),当用户输入文字后,它将会调用JS方法获取远程数据,以比较原数据与你输入的数据是否匹配. 知识点:以对象作为参数进行传递 ko.validation.js的扩展 //ajax相等验证 kv.rul

Struts2系列:(21)在Struts中自定义验证规则

1.Struts实现验证的过程 通过对Struts源代码的学习,总结一下Struts如何实现验证. 在struts-default.xml文件中,有validator和workflow两个拦截器. <interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/> <interceptor

模型、数据、验证相关点

1)model 模型 1 /** 2 * 模型类创建方法一 3 */ 4 // 注册一个模型类usersmodel 5 Ext.regModel('UserModel', { 6 fields : [ 7 // 定义模型类的相关字段时要注意添加类型 8 // 常用类型通常是:string,integer,boolean,float 9 { 10 name : 'name', 11 type : 'string' 12 }, { 13 name : 'age', 14 type : 'int' 1

MVC验证05-自定义验证规则、验证2个属性值不等

原文:MVC验证05-自定义验证规则.验证2个属性值不等 本文体验2个属性值不等.即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等.相关文章包括: MVC验证01-基础.远程验证   MVC验证02-自定义验证规则.邮件验证   MVC验证03-自定义验证规则.禁止输入某些值   MVC验证04-自定义验证规则.日期范围验证 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因

Html5之高级-3 HTML5表单验证(验证属性、验证状态)

一.验证属性 Required 属性 - Required 属性主要防止域为空时提交表单.该属性不需要设置任何值 - 语法: Pattern 属性 - Pattern 属性的作用是实现元素的验证.它支持使用正则表达式定制验证规则 - 语法: Min 和 Max 属性 - min.max和step属性用于为包含数字或日期的input类型规定限定(约束) - 语法: Minlength 和 Maxlength 属性 - Minlength 和 Maxlength 属性的作用是定制元素允许的最小字符数

Struts数据效验

表单数据的验证: 前台验证:主要是通过JS验证, 表达数据是否合法! 后台验证:通过后台java代码进行验证! Struts也提供了数据效验的方式! Struts数据效验, 通过拦截器完成: <interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/> 代码方式验证Action中所有的方法

一脸懵逼学习Struts数据校验,数据回显,模型驱动,防止表单重复提交。

1:Struts2表单数据校验: (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证. (2)后台校验,也称之为服务器校验,这里指的是使用Struts2通过xml配置的方式进行表单数据的校验. (3)代码方式验证Action中所有的方法:代码方式验证Action中指定的方法:xml方式验证Action中所有的方法:xml方式验证Action中指定的方法: 2:代码方式验证Action中所有的方法(自己记得导jar包和我配置web.xml文件,自己脑补吧):