----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中,增加如下代码:
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)下面以例子来说明如何配置: 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. 4.jsp文件 a)jsp文件只需要在需要验证的页面的最后,加入如下像下面的代码即可: c)在提交保存的方法中,调用如下代码: if(validateBomForm(document.all.item("BomForm"))==true){ document.BomForm.submit(); validate+表单对象的名称,但是系统会默认的把表单对象的第一个字母大写。要是不知道是啥名称的话,可在jsp页面中,用右键,看源代码的方式,找到生成了什么函数。即也说明了原理,验证就是系统自动的生成了某些验证的js函数。 5.validator-rules.xml a)说说这个文件,是因为,如果需要更多高级的功能,更多自定义的内容,就需要修改这个文件了。像struts默认的integer验证中,他只能验证的到大于0的整数,而如果整数的规则是:正负整数的话,则需要修改这个文件中的integer函数的定义。 b)一般情况下,不建议对这个文件进行修改,确实有默认的方式不能满足的,则用加入正则表达式的方式完成。 说到这里validation的验证方式就说完了了,其实很原理很简单: Struts自动的根据validator-rules.xml生成验证规则放到要验证的jsp页面中,再根据validation.xml文件生成要验证的表单信息及提示信息。 通过上面的方式,我们也可发现验证其实很简单,而且还能很容易的做到国际化。 Errors: 这个本来不值得一写的,他的使用比上面的就更简单了,但是还是把它写出来,是因为,中公司的项目中,总有同事提出不能输出不配置资源化的文件。即有同事的想法:我不配置是否可把异常中的信息显示到页面中呢。 有的,方法也有很简单: 1.资源文件: 2.jsp文件: ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.string", "这是一个测试信息,为可删除的内容。")); 如果想输出资源文件中配置的信息则可中action中这样子写: ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("insert.succ")); 到这里这篇文档就结束了,要是还有什么不明白的,或者有更好用法或体验的,请您和我交流或也与我一起分享。我的邮箱地址是:ftf@gzunicorn.com。下载本文
2.validation.xml文件
3.资源文件
c)资源文件中的{0}或{1}就是对应arg0或arg1errors.email={0} is an invalid e-mail address.
b)formName就是对应validation.xml文件中的form节点中name的属性值。
请注意validateBomForm这里。这里生成的规则是:}
在资源文件中配置上面一句话,这样在输出的时,就把在action中自定义的信息放到了{0}中去了。errors.string={0}
3.Action:
只需要上面的信息就可以输出写在action中的提示信息了。this.saveErrors(request, errors);
在资源文件中配置insert.succ=save data success.即可。this.saveErrors(request, errors);