Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用validwhen设计复杂的Struts表单验证

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

通过Struts 1.2提供的validwhen 验证器可以轻松的创建更加复杂灵活的表单验证。

比如说,我们要验证用户两次输入的密码是否相同,或是只有当用户填写表单项“姓氏”时,表单项“名字”才是必须的。

validwhen 需要声明一个叫testvar字段,这个变量的值是一个布尔型的表达式,比如:

    <var-name>test</var-name>
    <var-value>((orderLines[].partNumber == null) or (*this* != null))</var-value>

当布尔型表达式返回true时,验证才会成功。下边是允许发入该表达式的一些元素:

  • 单引号或双引号括起来的字符串
  • 十进制、十六进制或八进制表示的整形字面量
  • null 表示没有输入的空串
  • 可以使用表单里的任何字段名字,如 customerAge
  • 显式引用的索引字段,如childLastName[2]
  • 隐式引用的索引字段,如childLastName[],表示使用与该字段相同的索引
  • 字面量 *this* 表示当前被验证的表单

例:

下边这段代码表示:只有当sendNewsletter字段为空,或该字段emailAddress不为空时,该字段才有效


<field property="emailAddress" depends="validwhen">
      <arg0 key="userinfo.emailAddress.label"/>
        <var>
          <var-name>test</var-name>
          <var-value>((sendNewsletter == null) or (*this* != null))</var-value>
        </var>
      </field>

下边这个例子表示,只有相应的partNumber存在时,字段quantity才是必须的


下边这个例子表示,只有相应的partNumber存在时,字段quantity才是必须的


    <field property="quantity" indexedListProperty="orderLines" depends="validwhen">
      <arg0 key="orderform.quantity.label"/>
        <var>
          <var-name>test</var-name>
          <var-value>((orderLines[].partNumber == null) or (*this* != null))</var-value>
        </var>
      </field>

下边这个例子表示,如果输入身高小于60英寸,则不能做nbaPointGuard


下边这个例子表示,如果输入身高小于60英寸,则不能做nbaPointGuard


    <field property="nbaPointGuard" depends="validwhen">
      <arg0 key="careers.nbaPointGuard.label"/>
        <var>
          <var-name>test</var-name>
          <var-value>((heightInInches >= 60) or (*this* == null))</var-value>
        </var>
      </field>




相关文章

相关软件