struts validator 验证机制

struts 内置了 validator 通过配置xml文件来对前端验证进行处理

支持的struts包名  jakarta-oro.jar 和 commons-validator.jar

1.配置validator机制

a.定义ActionForm 

struts-config.xml文件

<form-bean name="regForm" type="org.apache.struts.validator.DynaValidatorForm">

将type = "org.apache.struts.action.ActionForm" 改成 

type="org.apache.struts.validator.ValidatorForm" 

将type = "org.apache.struts.action.DynaActionForm" 改成type="org.apache.struts.validator.DynaValidatorForm" 

因为 只有 ValidatorForm 和DynaValidatorForm 可以使用 valitor验证机制。 

如果用的是ActionForm 或者 DynaActionForm 需要 继承  ValidatorForm 或者 DynaValidatorForm

因为 ValidatorForm是ActionForm的子类,DynaValidatorForm是DynaActionForm的子类。

<form-bean name="loginForm" type="prj10_1.form.LoginForm" >
     <form-property name="account" type="java.lang.String" />
     <form-property name="password" type="java.lang.String" />
</form-bean>

 

特别注意:如果继承 ValidatorForm 或者 DynaValidatorForm 时,应当删除 validate()和reset()方法,否则也不能显示。

 

b.注册验证文件

<!-- 以插件的形式注册框架中的验证文件 -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml" property="pathnames"/>
</plug-in>

2.编写xml验证文件 文件名 validator.xml 

<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!-- 在这里写验证 -->
<form-validation>
<!-- 写表单验证可以写多个 -->
<formset>
<!-- 验证某个表单,name是ActionForm名字 -->
<form name="regForm">
<!-- 验证属性 -->
<field property="name" depends="required">
<msg name="required" key="error.null"/>

<arg0 name="required" key="name" resource="false"/>
</field>

</form>
</formset>

 

valicator-rules.xml是验证的帮助文件 不需要编写 

文档说明

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!--

在配置文件 struts-config.xml 以插件的形式注册validator机制

      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                  /WEB-INF/validation.xml"/>
      </plug-in>

   ApplicationResources.properties 文件中定义错误消息

   # Struts Validator Error Messages
   errors.required={0} is required.
   errors.minlength={0} can not be less than {1} characters.
   errors.maxlength={0} can not be greater than {1} characters.
   errors.invalid={0} is invalid.

   errors.byte={0} must be a byte.
   errors.short={0} must be a short.
   errors.integer={0} must be an integer.
   errors.long={0} must be a long.
   errors.float={0} must be a float.
   errors.double={0} must be a double.

   errors.date={0} is not a date.
   errors.range={0} is not in the range {1} through {2}.
   errors.creditcard={0} is an invalid credit card number.
   errors.email={0} is an invalid e-mail address.

   Note: Starting in Struts 1.2.0 the default javascript definitions have
         been consolidated to commons-validator. The default can be overridden
         by supplying a <javascript> element with a CDATA section, just as
         in struts 1.1.

-->

<form-validation>

   <global>

  <!-- 验证是否为空 -->
      <validator name="required" .../>

  <!-- 在某种条件下不为空 -->
      <validator name="requiredif".../>

  <!-- 在某种条件下进行验证 -->
      <validator name="validwhen".../>

  <!-- 验证最小长度 -->
      <validator name="minlength".../>

  <!-- 验证最大长度 -->
      <validator name="maxlength".../>

  <!-- 正则表达式 -->
      <validator name="mask".../>

  <!-- 验证是否是字节 -->
      <validator name="byte".../>

  <!-- 验证是否是短整型 -->
      <validator name="short".../>

  <!-- 验证是否是整型 -->
      <validator name="integer".../>

  <!-- 验证是否是长整型 -->
      <validator name="long".../>

  <!-- 验证是否是浮点型 -->
      <validator name="float".../>

  <!-- 验证是否是双精度型 -->
      <validator name="double".../>

  <!-- 验证是否是日期格式 -->
      <validator name="date".../>

  <!-- 整数的范围 -->
      <validator name="intRange".../>

  <!-- 浮点型的范围 -->
      <validator name="floatRange".../>

  <!-- 双精度型的范围 -->
      <validator name="doubleRange".../>

  <!-- 验证是否是信用卡的格式 -->
      <validator name="creditCard".../>

  <!-- 是否是电子邮件格式 -->
      <validator name="email".../>

  <!-- 是否是url格式 -->
      <validator name="url".../>

     <!--
       This simply allows struts to include the validateUtilities into a page, it should
       not be used as a validation rule.
     -->
     <validator name="includeJavaScriptUtilities"
            classname=""
               method=""
         methodParams=""
              depends=""
                  msg=""
           jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>

   </global>

</form-validation>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值