分享
 
 
 

Struts快速学习指南11(内部培训教材)-大部分素材来自于《Programming Jakarta Struts》一书

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1.1.1.1.1.1 validation.xml

Validator框架所需要的第二个配置文件是validation.xml,这个配置文件是具体应用(项目)所特定的,可以根据你的应用(项目)情况进行自定义配置。它描述了具体的ActionForm使用validation-rules.xml文件中的哪个校验规则进行校验。

validation_1_1.dtd定义了validation.xml的结构,根元素为form-validation,其包含0到多个global元素和一到多个formset元素:

<!ELEMENT form-validation (global*, formset+)>

global元素包含0到多个constant子元素:

<!ELEMENT global (constant*)>

constant子元素和Java里面常量的含义是一样的,下面的片断定义了两个常量:

<global>

<constant>

<constant-name>phone</constant-name>

<constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value>

</constant>

<constant>

<constant-name>zip</constant-name>

<constant-value>^\d{5}(-\d{4})?$</constant-value>

</constant>

</global>

上面的片断包含了两个常量,phone 和zip,这些常量在所有formset元素中有效,在formset中通过名称引用这些常量。

下面的片断展示了一个简单的validation.xml文件说明:

代码片断 3.3.3.3.1.3.1

<form-validation>

<global>

<constant>

<constant-name>phone</constant-name>

<constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value>

</constant>

</global>

<formset>

<form name="checkoutForm">

<field

property="phone"

depends="required,mask">

<arg0 key="registrationForm.firstname.displayname"/>

<var>

<var-name>mask</var-name>

<var-value>${phone}</var-value>

</var>

</field>

</form>

</formset>

</form-validation>

在上面的代码片断中,var元素应用了在global中定义了phone常量,用来配合对phone属性的校验。

formset元素可以包含两个子元素,constant和form。constant元素和global区域定义的constant元素格式和用途一样,只不过作用范围不同,在formset中定义的constant元素其作用范围只限于该formset覆盖区域。Formset元素中的form元素至少要出现一次。DTD描述如下:

<!ELEMENT formset (constant*, form+)>

form元素定义了需要进行校验的域,其name属性对应应用中分配给form的标识,在Struts框架中,就是在Struts配置文件中form-beans区域定义的ActionForm的name属性。

下面是form元素的DTD定义:

<!ELEMENT form (field+)>

field元素指明了JavaBean中需要被校验的属性。在上面的代码片断中,在Struts中,ActionForm就是这个需要被校验的JavaBean。在代码片断 3.3.3.3.1.3.1中,定义了对Struts配置文件中名称为checkoutForm的ActionForm所拥有的名称为phone的属性的校验说明,表示checkoutForm的phone属性为必填项而且符合${phone}所定义的正则表达式的掩码规则。field元素的属性在下表中具体描述:

属性

描述

property

JavaBean(在Struts为ActionForm)中需要被校验的属性的名称。

depends

应用于property指定属性的校验规则列表,多个校验规则之间用逗号分隔。

page

这个属性在应用于“向导”模式的form中,用来确保不会跳页访问。

indexedListProperty

不会用

表3.3.3.3.1.3.1 field元素的属性列表

field元素包含以下几个子元素,DTD定义如下:

<!ELEMENT field (msg?, arg0?, arg1?, arg2?, arg3?, var*)>

msg子元素允许你为该field指定一个提示信息,校验规则将会使用这个指定的提示信息替代规则默认的提示信息,msg子元素的值必须是应用资源文件的一个关键字(key)。例如:

<field property="phone" depends="required,mask">

<msg name="mask" key="phone.invalidformat"/>

<arg0 key="registrationForm.firstname.displayname"/>

<var>

<var-name>mask</var-name>

<var-value>${phone}</var-value>

</var>

</field>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有