zoukankan      html  css  js  c++  java
  • struts2验证学习笔记

     表单验证Validate:

    首先为Action提供<result name="input">错误信息的显示界面,如login.jsp</result>

    界面中调试标签<s:debug></s:debug>,可以查看值栈内容

    1.   使用addFieldError
       界面中任意位置可以用EL访问,形式如${errors.username[0]} (推荐)
      可以指定<s:fielderror />处显示全部出错信息。或者
      用<s:fielderror><s:param>username</s:param></s:fielderror>显示特定出错信息,但这种方式不如直接用EL灵活,这种方式显示的结果一定是另起一行的(块级的,相当于div)。 

       在Action(继承ActionSupport)中

      

    @Override
    
      public void validate() {
    
         // TODO Auto-generated method stub
    
         super.validate();
    
         if(null==username||"".equals(username)){
    
           addFieldError("username", "用户名不能为空!");
    
         }
    
         if(null==password||"".equals(password)){
    
           addFieldError("password", "密码不能为空!");
    
         }
    
      }
    

      

     注意validate方法还可以是validateXxx后面是Action自定义扩展的处理器方法名。由于Struts2通过反射实现调用,性能较差,而validate方法是通过接口Validateable调用的。

     2.    使用addActionError

      界面中为通用标记<s:actionerror/>

      Action中使用 addActionError("用户名不能为空!");

    3. 使用structs框架验证

     可配置化校验框架是通过validation拦截器组件实现的, 命名为Action类名-validation.xml或者Action类名-Action类逻辑名-validation.xml,或者Action类名-方法名-validation.xml.

    eg:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
    	<field name="username">
    		<field-validator type="requiredstring">
    			<param name="trim">true</param>
    			<message>用户名不能为空!</message>	
    		</field-validator>
    	</field>
    	<field name="password">
    		<field-validator type="requiredstring">
    			<param name="trim">true</param>
    			<message key="password_null"/>
    		</field-validator>
    		<field-validator type="regex">
    			<!--  -->
    			<param name="expression"><![CDATA[(\w{4,10})]]></param>
    			<message>密码应为4-10位</message>
    		</field-validator>	
    	</field>
    </validators>
    

      

    有时候在一个Action中有不同的处理方法,每一个方法校验规则都不同。为每一个方法配置一个校验文件,命名为Action类名-方法名-validation.xml;对于在Action程序中的校验,若要分别写校验方法,则命名规则为validate+方法名(首字母大写)。

  • 相关阅读:
    Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
    C# 生成二维码
    T-sql语句修改数据库逻辑名、数据库名、物理名
    ASP.NET MVC中使用jQuery时的浏览器缓存问题
    关于asp.net页面缓存
    关于VS 工具箱灰色,不可用的解决方案
    Android
    如何让一个DIV水平,垂直方向都居中于浏览器?
    cookie.setPath()的用法
    CSS选择器
  • 原文地址:https://www.cnblogs.com/tazi/p/2281942.html
Copyright © 2011-2022 走看看