视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Validation和Errors用法
2025-09-27 23:30:28 责编:小OO
文档
Validation和Errors用法

----java组,方腾飞

前言:

    在j2ee开发中,Validation和Errors是我们用的很频繁的两个功能,想必在开发中,也都用的很熟悉了。而本文档就这两个功能的使用技巧进行描述。

Validation:

    validation为struts框架中的验证模块,主要提供对数据输入进行格式必输性等验证。

    验证方式有两种,一种是利用validationForm进行后台java验证,另一种是利用javascript进行jsp的脚本验证。本文以jsp中的javascript验证为例:

    Jsp的javascript配置,配置主要分成如下几个部分:

1.struts-config.xml文件

a)由于validation是以strust的插件方式存在,故要用validation验证框架,首先需要在struts-config.xml中包括进来validation插件:

在struts-config.xml中,增加如下代码:

2.validation.xml文件

a)此文件是验证框架的核心部分,也是修改的最多的地方。可理解为,需要对哪些Form表单进行验证,对表单中的哪些对象进行验证等。

b)Validation验证中,已经提供了很多默认的验证方式,包括,必输输入,为数字,为字母等,当然也可自定义验证函数等。下面列出已经默认好的验证方式:

A.required

B.minlength

C.maxlength

D.byte

E.short

F.integer

G.long

H.float

I.double

J.date

K.range

L.creditcard

M.email

N.自定义验证表达式

c)下面以例子来说明如何配置:

       

        

        PK

            ^[a-zA-Z0-9-_]*$

        

        

            Number_Integer

            ^-?[1-9]\\d*$

        

        

            Number_Float

            ^-?(?:\\d+\\.?)?\\d+$

        

    

    

         

 

     Field中:

          property:对应form中要验证的属性名称

          depends:要验证的模式,比如必须输入用required,数字用integer,也可多个验证联合起来使用,多个之间用逗号隔开。

field有多个子元素:msg|arg0|arg1|arg2|arg3|var

注意:如果是struts提供的验证模式,即不是自定义的表达式验证的话,则msg元素不是必须的,只需要输入depends所对应的arg0或arg0,arg1及可.

例如:姓名是必须输入。

则可这样子配置:

    上面例子说明:depends中的required和arg0中的name值是一样的,另外arg0中的key值需要到资源文件中进行配置。如果资源文件中p.username=UserName,则在jsp中进行验证的时,则提示的信息为:UserName is required.

    当然,也可用如下的方式配置:

    这样的话,在提示信息的时候,就只会提示username.isrequired所对应的内容,而不会默认的加上is required.

    

    mask自定义表达式的验证:

        

        

        

            mask

            ${Number_Float}

        

    自定义模式的配置,好好揣摩就OK了。

    minlength:最小长度

        

            

                minlength

                5

            

    maxlength:最大长度,这对于textarea有很好的支持。

        

            

                maxlength

                5

            

    数字的范围:floatRange,intRange

        

        

            

                min

                5

            

            

                max

                6

            

-->

    

        

    

    

         

    

            

    

            

                

    

        

        

            

                mask

                ${Number_Float}

            

         

    

3.资源文件

a)资源文件是validation配置中的大量用到的地方,主要是对应key值。包括上面提到的p.username及username.isrequired。

b)另外,在配置其他key值的时候,需要把如下的内容默认的添加到资源文件中:

errors.required={0} is required.

errors.minlength={0} can not be less than {1} characters.

errors.maxlength={0} can not be greater than {1} characters.

errors.invalid={0} is invalid.

errors.byte={0} must be a byte.

errors.short={0} must be a short.

errors.integer={0} must be an integer.

errors.long={0} must be a long.

errors.float={0} must be a float.

errors.double={0} must be a double.

errors.date={0} is not a date.

errors.range={0} is not in the range {1} through {2}.

errors.creditcard={0} is an invalid credit card number.

errors.email={0} is an invalid e-mail address.

c)资源文件中的{0}或{1}就是对应arg0或arg1

4.jsp文件

a)jsp文件只需要在需要验证的页面的最后,加入如下像下面的代码即可:

b)formName就是对应validation.xml文件中的form节点中name的属性值。

c)在提交保存的方法中,调用如下代码:

if(validateBomForm(document.all.item("BomForm"))==true){

        document.BomForm.submit();

}
    请注意validateBomForm这里。这里生成的规则是:

    validate+表单对象的名称,但是系统会默认的把表单对象的第一个字母大写。要是不知道是啥名称的话,可在jsp页面中,用右键,看源代码的方式,找到生成了什么函数。即也说明了原理,验证就是系统自动的生成了某些验证的js函数。

5.validator-rules.xml

a)说说这个文件,是因为,如果需要更多高级的功能,更多自定义的内容,就需要修改这个文件了。像struts默认的integer验证中,他只能验证的到大于0的整数,而如果整数的规则是:正负整数的话,则需要修改这个文件中的integer函数的定义。

b)一般情况下,不建议对这个文件进行修改,确实有默认的方式不能满足的,则用加入正则表达式的方式完成。

  说到这里validation的验证方式就说完了了,其实很原理很简单:

  Struts自动的根据validator-rules.xml生成验证规则放到要验证的jsp页面中,再根据validation.xml文件生成要验证的表单信息及提示信息。

  通过上面的方式,我们也可发现验证其实很简单,而且还能很容易的做到国际化。

  

Errors:

    这个本来不值得一写的,他的使用比上面的就更简单了,但是还是把它写出来,是因为,中公司的项目中,总有同事提出不能输出不配置资源化的文件。即有同事的想法:我不配置是否可把异常中的信息显示到页面中呢。

    有的,方法也有很简单:

1.资源文件:

errors.string={0}
在资源文件中配置上面一句话,这样在输出的时,就把在action中自定义的信息放到了{0}中去了。

2.jsp文件:

3.Action:

ActionErrors errors = new ActionErrors();

errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.string", "这是一个测试信息,为可删除的内容。"));

this.saveErrors(request, errors);

只需要上面的信息就可以输出写在action中的提示信息了。

如果想输出资源文件中配置的信息则可中action中这样子写:

ActionErrors errors = new ActionErrors();

errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("insert.succ"));

this.saveErrors(request, errors);

在资源文件中配置insert.succ=save data success.即可。

到这里这篇文档就结束了,要是还有什么不明白的,或者有更好用法或体验的,请您和我交流或也与我一起分享。我的邮箱地址是:ftf@gzunicorn.com。下载本文

显示全文
专题