| 在Struts的开发中,我们通常结合XDoclet进行开发,一方面可以快速生成配置文件,省去录入的工作量;另一方面,代码中也包含了原信息,更容易理解,这对开发效率有很大的提高。对于一些固定的Struts XDcolet标签,如struts.action,strust.form等我们可以通过文件模板机制直接将这些标签写入文件中,从而省去标签信息的录入,但是对应一些动态的标签,如校验,则需要根据具体的情况来判断并输入,这个工作量非常大,Ctrl+C,Ctrl+V,再做修改,非常浪费时间。
下面我们就看看我们通常会使用的校验准则,除了Struts的基本准则外,我们这里主要考虑到各种准则的组合,主要有以下18种情况:
1 required - validator.required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
2 date - validator.date
* @struts.validator-args arg0resource="$name$"
* @struts.validator type=”date”
* @struts.validator-var name="datePattern"
* value="yyyy-MM-dd"
3 date,required - validator.date_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=”date”
* @struts.validator-var name="datePattern"
* value="yyyy-MM-dd"
4 integer - validator.integer
*@struts.validator-args arg0resource="$name$"
*@struts.validator type=“integer”
5 integer,required - validator.integer_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=”integer”
6 integer, intRange,required - validator.intger_range_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=“integer”
*@struts.validator type=”intRange”
arg1value=”${var:min}” arg2value=”${var:max}”
* @struts.validator-var name="min" value="$min$"
* @struts.validator-var name="max" value="$max$"
7 minlength - validator.minlength
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="minlength" arg1value="${var:minlength}"
* @struts.validator-var name="minlength" value="$minlength$"
8 minlength,required - validator.minlength_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
* @struts.validator type="minlength" arg1value="${var:minlength}"
* @struts.validator-var name="minlength" value="$minlength$"
9 maxlength - validator.maxlength
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="maxlength" arg1value="${var:maxlength}"
* @struts.validator-var name="maxlength" value="$maxlength$"
10 maxlength,required - validator.maxlength_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
* @struts.validator type="maxlength" arg1value="${var:maxlength}"
* @struts.validator-var name="maxlength" value="$maxlength$"
11 minlength,maxlength,required - validator.minlength_maxlength_requried
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
* @struts.validator type="minlength" arg1value="${var:minlength}"
* @struts.validator type="maxlength" arg2value="${var:maxlength}"
* @struts.validator-var name="minlength" value="$minlength$"
* @struts.validator-var name="maxlength" value="$maxlength$"
12 float - validator.float
* @struts.validator-args arg0resource="$name$"
*@struts.validator type=”float”
13 float,required - validator.float_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=”float”
14 float,floatRange,required - validator.float_range_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=”float”
*@struts.validator type=”floatRange”
arg1value=”${var:min}” arg2value=”${var:max}”
* @struts.validator-var name="min" value="$min$"
* @struts.validator-var name="max" value="$max$"
15 mask - validator.mask
* @struts.validator-args arg0resource="$name$"
* @struts.validator-var name="mask"
* value="$regexp$"
16 mask,required - validator.mask_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
* @struts.validator-var name="mask"
* value="$regexp$"
17 email - validator.email
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
18 email,required - validator.email_required
* @struts.validator-args arg0resource="$name$"
* @struts.validator type="required"
*@struts.validator type=”email”
这16种情况通常可以包含90%左右的校验,实际情况中你只需找到匹配的情况然后套用即可,为了更加方便,我们制作了一个IntelliJ IDEA的Live Template,那将更加方便,你完全可以不用了解XDoclet和Struts的Validator规则,也可以快速写出Struts的XDcolet校验标签,如下图: |