struts2——输入校验

校验文件的命名为XXXAction-validation.xml,其中的XXXAction就是我们需要指定校验规则的类,校验规则如下:





<validators>
    
    <field name="属性值">
        
        <field-validator type="规则">
            <param name="trim">trueparam>
            <param name="min">最小值param>
            <param name="max">最大值param>
            <message key="失败时,国际化文件中的消息"/>
        field-validator>
        
        <field-validator type="regex">
            <param name="regex">param>
            <message key="国际化文件中的名称"/>
        field-validator>
    field>
validators>

上面为字段校验器配置风格,struts2还支持非字段校验器还有短路校验器,非字段校验器的使用和目的和字段校验器没有不同,短路校验器需要在:

"regex" short-circuit="true">
...

显式的将short-circuit值设置为true,从而当该校验器失效时,其他校验器根本不会工作。下面介绍几种常用的校验器:

<field-validator type="required" >field-validator>
由@RequiredStringValidator进行代替

<field-validator type="requiredstring" >field-validator>
由@RequiredStringValidator进行代替

<field-validator type="int" >field-validator>
由@IntRangeFieldValidator进行代替

<field-validator type="date" >field-validator>
由@DateRangeFieldValidator进行代替

<field-validator type="expression" >

    <param name="expression">...param>
field-validator>

<field-validator type="email" >field-validator>

<field-validator type="url" >field-validator>

<field-validator type="visitor" >

    <param name="context">专门用于该复合属性校验的校验文件param>
field-validator>

<field-validator type="conversion" >

    <param name="repopulateField">true(转换失败后原页面保留错误输入)param>
field-validator>

<field-validator type="stringlength" >

    <param name="minLength">4param>
    <param name="maxLength">20param>
field-validator>

<field-validator type="regex" >

    <param name="regex">param>
field-validator>
由@RegexFieldValidator进行校验

校验失败之后通过来在jsp页面上输出上传失败的信息
ps.注解需要加在对应属性的setter方法上,这一点和SpringMVC直接加在属性上有所不同
如果上面已经提供的检验器还不能满足您的需求,可以通过重写validate()方法和validateXXX()方法进行自定义的检验其中XXX为方法名,检验的结果通过addFieldError方法进行添加
结合struts2数据转换,可以发现struts2的处理流程是:
struts2——输入校验_第1张图片

你可能感兴趣的:(Struts2实战)