`

008 - 输入校验

阅读更多

1. 输入校验

 

    流程:用户提交表单 -> 进行类型转换(有错,转到input视图) 

                                -> 输入校验validateXxxx()(有错,转到input视图) 

                                -> validate()(有错,转到input视图)                    
                         
      
                      

如果fliedErrors里存有信息,则Action转到input视图. 在转向的input视图中,可以用 <s:fielderror/> 拿到错误信息,但是默认带了<ul><li> XXXX </ul></li>,于是常用<s:properties>直接拿出值,再自己做修饰

 


1)手工在Action里写validate()或validateXxxx()方式


   在执行execute()方法前,首先执行输入校验
           * validate()对所有方法进行校验
           * validateXxxxx() 对 xxxxx()这个方法进行校验
  
如: 
    public void validate() {//会对action中的所有方法校验
            if(this.username==null || "".equals(this.username.trim())){
                    this.addFieldError("username", "用户名不能为空");
            }
           if(this.mobile==null || "".equals(this.mobile.trim())){
                    this.addFieldError("mobile", "手机号不能为空");
           }else{
                     if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
                    this.addFieldError("mobile", "手机号格式不正确");
                    }
           }

   }

2)运用验证框架

 

  1. 对所有方法进行校验
        在要校验的Action的包下建一文件 ActionName-validation.xml,如要对UserAction中所有方法都需要输入校验,则建文件UserAction-validation.xml
   
  2. 对某个方法进行校验

         在要校验的Action的包下建一文件 ActionName-action_url-validation.xml
   
    action_url 是访问该Action时除namespace外那些
 
    如: 要对UserAction中add()方法进行输入校验,则建文件UserAction-user_add-validation.xml
    该Action在struts.xml里的配置如下:
  
<struts>    
  <package name="person" namespace="/user" extends="struts-default">
         <action name="user_*" class="cn.itcast.action.PersonAction" method="{1}">
                   <result name="input">/index.jsp</result>
                   <result name="message">/WEB-INF/page/message.jsp</result>
         </action>
  </package>
</struts>

//表单里
<form action="user/user_add" method="post">
    ........
</form>

 

//ActionName-validation.xml
        这个文件的模板在struts2 的示例程序里可找到
        在xwork1.0.3.jar里的default.xml里可找到各种校验器

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "
http://www.opensymphony.com/xwork/xwork-

validator-1.0.3.dtd">

<validators>

       <field name="username">                       
              <field-validator type="requiredstring">   
<!--校验器requiredstring-->
                     <param name="trim">true</param>     
  
<!--给requiredstring的trim属性注入值-->
                     <message>用户名不能为空!</message>
              </field-validator>
    </field>
   
    <field name="mobile">
            <field-validator type="requiredstring">   
<!--校验器requiredstring-->
                  <message>手机号不能为空!</message>
            </field-validator>
        <field-validator type="regex">          
  
<!--校验器regex-->
                  <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
                   <message>手机号格式不正确!</message>
        </field-validator>
    </field>
</validators>

 

 


<![CDATA[^1[358]\d{9}$]]>

<![CDATA[ *** ]]>  表示里面的东西只当做普通字符串对待,也就是说,可以是一些特殊字符

校验文件执行顺序:BaseAction-validation.xml  -> BaseAction-xxxxx-validation.xml ->UserAction-validation.xml ->UserAction-

xxxx-validation.xml

当冲突时,后面的把前面的覆盖

分享到:
评论

相关推荐

    struts框架验证---输入校验器大全

    struts框架验证---输入校验器大全

    Struts2--输入校验

    NULL 博文链接:https://huangminwen.iteye.com/blog/1004575

    Struts2输入校验总结

    Struts2输入校验总结 Struts2输入校验

    汇编实现CRC-16校验(Dosbox上运行)

    可以在Dosbox下运行以下程序,附有详细的注释,仅供参考 ...输入一串字符串(长度不超过20),以二进制形式显示输出该字符串; 对该字符串做CRC-16校验,以二进制形式显示输出该字符串的CRC校验码。

    struts2的输入校验

    struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...

    一个crc-16校验的小程序

    一个crc 16校验的小程序, 输入要校验的16进制数, 即可显示校验结果. 其中涉及字符串转16进制以及16进制转字符串的实现

    管理信息系统--输入设计.docx

    输入的数据量与频度 输入信息的来源和形式 输入格式的灵活程度 输入速度和准确性要求 输入校验方法,允许的错误率及纠正的难易程度 数据的要求,特点和保密性 数据输入的环境 可选用的设备和费用等. 4.输入设备:键盘+...

    CRC-16校验工具

    编程算法前的自我校验工具。数据帧结构 输入工具中,帮助验证自己程序模块的正确性。与编程平台无关。

    struts2输入校验

    struts2输入校验 对指定方法进行输入校验

    输入校验之validateXXX方法校验

    输入校验之validateXXX方法校验的一个例子

    Struts2的输入校验

    Struts2输入校验,Struts2提供了功能强大的输入校验机制,通过Struts2内建的输入校验器,应用无需书写任何代码,即可完成大部分的校验功能,并可以同时完成客户端和服务器端的校验。

    vue 校验多个input框右侧提示

    引用vueValidate插件,做到多个input框的同时校验,右侧提示同时显示

    Struts2 用户输入校验教程

    基于Struts2框架的用户输入校验的完整讲解!是我的原创! 非常感谢大家提出宝贵意见

    vue input 输入校验字母数字组合且长度小于30的实现代码

    主要介绍了vue input 校验字母数字组合且长度小于30的实现代码,文章给大家补充介绍了在Vue.Js下使用el-input框只能输入数字并限制位数并且限制中文输入以及粘贴功能,感兴趣的朋友跟随脚本之家小编一起看看吧

    Struts2类型转换与输入校验 .zip

     实验目的:  熟悉和掌握Struts2自定义类型转换。  熟悉和掌握Struts2内建校验的操作方法 ...(2) 根据实验四的图书管理系统,扩展图书新增功能,要求对新增页面表单中的每个文件输入框进行输入校验

    struts2输入校验总结

    struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结

    matlab环境下的文件校验工具

    matlab环境下的文件校验工具, 语法:File_verification_cmd(); 适用:放入工作路径,输入File_verification_cmd();...其他:输入的校验码会自动转成大写;生成的校验码默认为大写,保存在打开的文件的路径下。

    Struts 2 输入校验

    Struts 2 输入校验

Global site tag (gtag.js) - Google Analytics