问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Struts1.x系列教程(11):Validator验证框架高级应用

发布网友 发布时间:2023-08-25 19:03

我来回答

1个回答

热心网友 时间:2024-12-03 20:16

  在《Struts x系列教程( ) Validator验证框架入门》一文中给出的例子中的name age和email都是简单的属性 如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类) 可以使用圆点( )符号来访问 如我们可以通过设置<field>元素的property属性值为 employee salary 来验证employee属性中的salary属性

  如果要验证的索引属性 我们可以使用<field>元素的indexedListProperty属性来指定这个索引属性 如下面代码如示

   <field indexedListProperty= items  depends=>  </field>

  在使用上述配置代码后 Validator框架将会按著depends属性中的约束来验证items属性的每一个值 我们还可以将property和indexedListProperty配合使用 如下面代码所示

   <field indexedListProperty= items   property= employee age   depends=>  </field>

  Validator框架将根据上述的配置代码来验证items属性中的每一项的employee age属性

  二 使用常量和变量

  常量

  在《Struts x系列教程( ) Validator验证框架入门》一文中的name属性使用了mask进行验证 这个mask实际上代表了一个正则表达式 但如果在validator xml文件中有很多个地方需要用到这个正则表达式 那就它就会在很多地方重复 为此 我们可以使用常量来避免这种事情发生

  常量分为全局常量和局部常量

  ( )全局常量

  全局常量可以被用在validator xml中定义的所有form中 我们可以使用<global>元素来配置全局常量 为了配置全局常量 将如下的内容放到第一个<formset>元素的前面

     <global>      <constant>          <constant name>mask</constant name>          <constant value> ^[a zA Z ]*$ </constant value>      </constant>  </global>  <formset>

  ( )局部常量

  局部常量需要放到<formset>元素的开始位置(根据DTD的定义 局部常量只能放到这里 而全局常量可以放在第一个<formset>元素的前面 也可以放到<formset>的后面) 如下面的代码所示

     <formset>      <constant>          <constant name>mask</constant name>          <constant value> ^[a zA Z ]*$ </constant value>      </constant>      <form name= firstValidatorForm >          </formset>

  我们可以编写如下的代码来使用mask常量

   <var>    <var name>mask</var name>    <var value> ${mask}</var value></var>

  变量

  Validator框架通过<var>元素来定义变量 变量将作为<field>的子元素被使用 主要向depends属性值(如mask)以及<msg>的错误信息传递数据 如下面的代码通过变量required将 姓名 传递给了错误信息的第一个参数{ }

   <field property= name   depends= required  >    <msg name= required  key= error name blank  />    <arg name= required  key= ${var:required}  position=  resource= false  />    <var>        <var name>required</var name>        <var value>姓名</var value>    </var></field>

  三 客户端验证

  使用Validator框架的好处之一就是可以很容易地将服务端验证变为客户端验证(JavaScript验证) 为了完成这一转换 我们只需要修改两个地方 现在就拿《Struts x系列教程( ) Validator验证框架入门》中的firstValidator jsp为例来说明要修改什么

  首先 在firstValidator jsp中的任何地方(当然 任何地方指的是客户端代码区 并不包括<%……%>和<%——…… ——%>所包含的内容)添加如下的< javascript>标签

   <:javascript formName= firstValidatorForm />

  然后在< form>标签中加入如下的属性

   onsubmit= return validateFirstValidatorForm(this);

lishixin/Article/program/Java/ky/201311/28301
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光线为什么不存在 炒菜时要等到油冒烟吗 高考数学选修没涂有分吗? 高考选修不涂有分数吗 《宫》中插曲是什么乐器演奏的? 电视剧《宫》的主题曲和片尾曲分别是什么? 爱我的人和我爱的人原唱是裘海正还是游鸿明 刑法对追诉时效的规定 刑事案件追诉期限的法律规定是什么? 爱奇艺海外版怎么下载 怎么搭建一个struts2框架 解释字:诸。(1)归而谋诸妇(2)投诸渤海之尾(3)臣尝闻大王好乐,有诸... 昨天用美团买了张ktv 结果去KTV她说他们系统有问题 让我付现金 结果我... 在美团上订KTV票,到店里还要给钱吗 ...套餐会不会服务员不喜欢服务,而且酒吧要是有低消怎么办 再加钱... 高德电子狗放到桌面快捷方式 健身行业现状如何? 垃圾分类国际化,走遍天下都不怕? 帮我找一张林志颖带黑框眼镜的照片~~ 谁知道这事什么鸟啊。爪子特大。 从广东乐从运一个1tue的集装箱到广东港的公路和河运的运费分别是多少... 河运与海运运费哪个贵 ps制作生日海报的软件-海报设计用什么软件 富光保温杯配件在哪买? 大普保温杯的配件在哪里可以买到 梦见陌生婆婆送红围巾 梦见别人送我红色围巾 ...成格了吗?马上要走正官大运了,七杀格走正官大运好不好? 共信智采app的百万补贴活动包含哪类产品? 养老保险100补贴政策 详解Struts中Validator验证框架的使用 火车往返车票最长时间是相隔多少天? 从南京到湖南湘西凤凰!!!来回大概多少时间?多少钱?给出详细的可行的行程... 从大连市内到瓦房店来回火车票多少钱?要多长时间? ...包涵了来回车费。穷学生,大家给点详细的点的意见~谢 梦见修路的施工现场的意思 电磁炉开关失效怎么解决 白芸豆,红枣,葡萄干,小米,煮粥能治胃病吗? 我想一个人去西藏旅游 ,大概需要多少资金?还有需要准备其它什么?_百度... 你好,我要去西藏拉萨,坐火车上海出发,帮我估算一下费用,另除去来回时 ... 非常向往西藏,想去次西藏。问下从上海到拉萨的火车,还有去到拉萨大概要... 冬天去西藏旅游的人多吗?我想从上海去西藏,两个人。计划是半个月。要... 西藏旅游需要花费多少钱? 上海到西藏(拉萨-林芝-那曲-日喀则-羊八井)的行程安排及费用问题... 昭君寺在哪 四时读书乐全文解释及原文 ...这两种包装都是真烟的吗,价格和口味有什么区别吗? (玉溪卷烟厂... 这是什么烟! 未成年可以行政拘留吗? 未满18岁可以治安拘留吗