首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>JAVA专区>WEBWORK>WebWork2.0中 类FieldValidatorSuppor对字段进行验证代码
WebWork2.0中 类FieldValidatorSuppor对字段进行验证代码
来源: 发布时间:2007-12-28 发布人: 浏览: 人次   字体: [ ]  
这是Webwork2.0中类FieldValidatorSupport中对字段进行验证validate的方法代码:
public void validate(Object object) throws ValidationException {
        String fieldName 
= getFieldName();
        String val 
= (String) getFieldValue(fieldName, object);

        
if (val == null || val.length() <= 0{
            
// use a required validator for these
            return;
        }

        
if (doTrim) {
            val 
= val.trim();
            
if (val.length() <= 0
                
// use a required validator
                return;
            }

        }


        
if ((minLength > -1&& (val.length() < minLength)) {
            addFieldError(fieldName, object);
        }
 else if ((maxLength > -1&& (val.length() > maxLength)) {
            addFieldError(fieldName, object);
        }

    }

从代码中可以看出,当被验证字段为null或其length<=0时,就不对其进行长度验证了。

这里是为什么呢??是不是其字段为null或其length<=0时验证留在别的地方验证了呢?答案是肯定的,请看类RequiredStringValidator和类RequiredFieldValidator中的validate方法

RequiredStringValidator中的validate方法:

public void validate(Object object) throws ValidationException {
        String fieldName 
= getFieldName();
        Object value 
= this.getFieldValue(fieldName, object);

        
if (!(value instanceof String)) {
            addFieldError(fieldName, object);
        }
 else {
            String s 
= (String) value;

            
if (doTrim) {
                s 
= s.trim();
            }


            
if (s.length() == 0{
                addFieldError(fieldName, object);
            }

        }

    }
2.RequiredFieldValidator中的validate方法
public void validate(Object object) throws ValidationException {
        String fieldName 
= getFieldName();
        Object value 
= this.getFieldValue(fieldName, object);

        
if (value == null{
            addFieldError(fieldName, object);
        }

    }

在代码中大家可以看到这三个方法各司其职而且互不影响,举个例子吧:

如何你有一个action类中如此写:

public class Hello extends ActionSupport {
    
private String name=null;
    
public String execute() throws Exception {
        
// TODO Auto-generated method stub
        return SUCCESS;
    }


    
public void setName(String n){
        name 
= n;
    }

    
    
public String getName(){
        
return name;
    }

}
然后你在Hello-validation.xml中对字段name进行验证:
<!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="name">
        
<field-validator type="required" short-circuit="false">
            
<message>Name is required!</message>
        
</field-validator>
        
<field-validator type="requiredstring" short-circuit="false">
            
<message>Please enter the name!</message>
        
</field-validator>
        
<field-validator type="stringlength">
            
<param name="minLength">5</param>
            
<param name="maxLength">8</param>
            
<message>The length of name is between ${minLength} and ${maxLength}.</message>
        
</field-validator>
    
</field>
</validators>

这时候当Hellow这个Action被引用的时候,WebWork的验证机制就会根据你的配置文件对name字段进行验证,在本例中name初始为null,所以这时候只有required和requiredstring对其进行完整的验证,也就是说这时候你会得到的验证信息为:Name is required! Please enter the name!

而如果你就Hello类中name字段设一个初始值(name="a"),那么这时候required和requiredstring就不会对其进行完整的验证了,相反stringlength会对其进行完整的验证,这时候你得到的验证信息为:The length of name is between 5 and 8.

这就是这个三个验证方式相互协作的方式!


相 关 文 章   发布商链接
·webwork2是什么?为何选择WebWork2?
·小解一下Struts2与Webwork2的区别
·深入分析Java中webwork的文件上传...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·小解一下Struts2与Webwork2的
·webwork2是什么?为何选择WebW...
·深入分析Java中webwork的文件...
热 门 文 章
·webwork2是什么?为何选择WebW...
·小解一下Struts2与Webwork2的...
·深入分析Java中webwork的文件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .