Struts2 validator 验证器

本文介绍Struts2中验证器的配置方法,包括验证器规则、默认验证功能及RequiredString验证器的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

验证器规则: 
1.      命名规则 : Action的名字-validation.xml
2.     继承的层次结构和接口由Action类来实现。Xwork搜索Action的继承树来查找Action的父类和实现的接口的默认验证。
3.      验证器可以组合使用
4.  路径:与验证的action同一路径
Struts2默认的验证功能 : 
下面列出struts2验证框架的验证器 : 
1.      数据转换验证器
2.      Date类型验证器
3.      Double类型验证器
4.      Email格式验证器
5.      表达式验证器
6.      字段表达式验证器 
7.      Int类型验证器
8.      正则表达式验证器 
9.      Required类型验证器
10.  Requiredstring类型验证器
11.  Stringlength验证器 
12.  URL验证器
13.  Visitor验证器 




下面将以Struts2中的RequiredString验证器为例.
RequiredString验证器检查String字段是不是null且长度是不是大于0(也就是说不能是"").在执行长度检查之前,trim参数就确定了字符串.默认情况下,字符串都会被修整(trim,除去字符串前后的空格)
如果用户在输入域什么都不填写就提交了表单, requiredString验证器就会生成错误信息.之后错误信息将显示给用户.
本例通过用户输入他的/她的user name的简单的数据输入表单来演示如何使用struts2的RequiredString验证器.按照下面的步骤创建例子程序 :
第一步 : 创建并添加下面的代码到struts.xml文件
<action name="stringValidation" class="net.roseindia.StringVaLidationAction">  
      <result name="input">/pages/stringInputForm.jsp</result>  
      <result name="error">/pages/stringInputForm.jsp</result>  
            <result>/pages/stringSuccess.jsp</result>  
        </action>


第二步 : 创建输入表单
<%@ taglib prefix="s" uri="/struts-tags" %>  
  
<html>  
  
<head>  
<title>Input form</title>  
 
</head>  
  
<body>  
  <s:fielderror/><!—全部验证错误信息将显示在这里-->
  <s:form method="POST" action="stringValidation">  
 
    <s:textfield label="Enter User Number" name="username" maxlength="10" />  
    <s:submit />  
  </s:form>  
  
</body>  
  
</html>  


第三步 : 创建Action类
public class StringVaLidationAction extends ActionSupport{   
  
  private String username;   
  
  public String execute() throws Exception{   
    if (getUsername() != null){   
      return SUCCESS;   
    }   
    else{   
      return ERROR;   
    }   
  }   
  
  public void setUsername(String username){   
    this.username = username;   
  }   
  public String getUsername(){   
    return username;   
  }   
}  


第四步 : 创建验证器
验证器文件的格式应该是<ActionClassName>-validation.xml或者<ActionClassName>-<ActionAliasName>-validation.xml.
验证器文件放到相关联的action同一路径下
<?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"><!—action内需要验证的字段名-->
    <field-validator type="requiredstring">  
      <param name="trim">true</param><!—是否trim字符串-->
      <message>请输入用户名</message>
      <!--验证未通过时的提示信息—>
    </field-validator>  
  </field>  
  
</validators>


验证未通过时提示信息
请输入用户名
其它校验器
URL验证器
<field name="url">  
    <field-validator type="url">  
       <message>Please enter a valid url</message>  
    </field-validator>  
  </field>
email验证器
<field name="myEmail">   
    <field-validator type="email">   
       <message>Please enter a valid email</message>   
    </field-validator>   
  </field>   
  
date验证器
<field name="joiningdate">  
    <field-validator type="date">  
      <param name="min">01/01/1990</param>  
      <param name="max">01/01/2000</param>  
      <message>Joining date must be supplied between ${min} and ${max}</message>  
    </field-validator>  
  </field>  


Double类型验证器
<field name="percentagemarks">  
    <field-validator type="double">  
      <param name="minInclusive">20.1</param>  
              <param name="maxInclusive">50.1</param>  
              <message>Percentage marks need to between    
${minInclusive} and ${maxInclusive}</message>  
    </field-validator>  
  </field>  


int验证器
<field name="userinput">  
    <field-validator type="int">  
      <param name="min">10</param>  
      <param name="max">80</param>  
      <message>Number needs to between ${min} and ${max} </message>  
    </field-validator>  
  </field>  


stringlength验证器
<field-validator type="stringlength">  
      <param name="minLength">6</param>
      <param name="maxLength">18</param>    
      <message>密码长度只能在${minLength}和${maxLength}之间</message>  
</field-validator>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值