zoukankan      html  css  js  c++  java
  • struts 数据验证

    1. validate()验证

       将对页面表单验证的内容写到validate()方法中,实现验证和业务处理内容的分离


       在Action中添加 validate()方法
       public void validate(){
         if(//****){
               addFieldError("name","XX不能XXX。。。。");  // 如果条件不匹配,可以使用 addFieldError()方法添加到对ActionContext中。
         }
        }

       在JSP页面 通过  <s:fielderror/>  显示错误信息

       Action中添加了validate()方法后, 一旦在验证过程中添加了验证信息,那么Struts2框架会更具Action的配置跳转到input的视图页面。

      提示:1) 接受参数时, 数据失败也会调用validate()方法
              2) validate()方法验证不通过,不会执行业务方法

    2. validateXxx() 验证

        当多个表单提交到同一个action页面是,validate()方法对所有表单生效,可以使用validateXxx()方法实现对某一个业务的验证

       例如: 

              JSP 表单  提交到  Login.action 的 login() 方法, 可以再Login.action 对应类中添加   validateLogin() 的验证方法

       提示: 

       1) validate()方法会对Action类中所有业务方法起作用
      2)validateXxx()方法实现对某个业务方法进行数据验证。
        i:Struts2支持validateXxx()方法进行数据验证
        i:使用validateRegister()方法实现针对 register()方法的验证
      3)validate()方法和 validateXxx()方法同时存在时,都会起作用
      4)validateXxx()方法的调用优于validate()方法

    3. Struts2的框架验证

       不管是采用上面哪两种方法,都需要手动编写校验规则。当验证规则复杂时就会导致Action类的臃肿。 可以使用Struts2框架,用户

    无需编码,只要在外部配置文件中制定某个字段需要进行的验证类型,并提供出错信息即可,能够减轻开发者的负担,提高开发效率。

        1) Action 类中不需要添加 validate() 或  validateXxx() 方法

        2) struts.xml 文件不需要验证配置

        3) JSP页面          

      <s:fielderror/>
      <form action="login.action">
      <s:text name="userName"></s:text> : <s:textfield name="name" ></s:textfield> <br/>
      <s:text name="userPwd"></s:text>: <s:password name="pwd" ></s:password> <br/>
      <s:text name="submit"></s:text> : <input type="submit" />
      </form>
    

      

        4) 在 Action 同包下创建验证文件。

              验证文件的命名规则: ClassName-validation.xml 或者 ClassName-alias-validation.xml 

             【文件可以查看struts的示例文件】        

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC 
    "-//Apache Struts//XWork Validator 1.0.2//EN"
    "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    <validators>
    <field name="name">
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>用户名不能为空</message>
    </field-validator>
    <field-validator type="stringlength">
    <param name="maxLength">10</param>
    <param name="minLength">6</param>
    <message>用户名长度必须在 ${minLength}和 ${maxLength}之间 </message>
    </field-validator>
    </field>
    </validators>

         requiredstring : 规定一个字符串不能为null,且不能为空字符串

         stringlength: 检查一个字符串的长度范围, 可以通过minLength和maxlength两个参数指定字段的最小长度和最大程度

         fieldexpression: 使用OGNL表达式来验证字段。 例如 <param name="expression" >pwd1==pwd2</param>

         regex:正则表达式

    4. 数据校验总结

       

       

  • 相关阅读:
    time模块
    Spring注入方式及注解配置
    Spring注入值得2种方式:属性注入和构造注入
    MySQL命令行登陆,远程登陆MySQL
    通过XMLHttpRequest和jQuery两种方式实现ajax
    Linux常用命令
    ASP.NET 打包下载文件
    从用户浏览器输入url到用户看到页面结果的过程,发生了什么事情?
    冒泡排序的三种实现
    字符串编码C#
  • 原文地址:https://www.cnblogs.com/Theladyflower/p/4623977.html
Copyright © 2011-2022 走看看