Sruts2使用自带校验器应对单类多action方法及符合字段的情况

    好久没写博客了,之前不写,是因为要找工作,终于找到了份工作,在银行,作开发。工作一年了,似乎离这里远了,学的东西,接触的东西多是些目的明确的,没太多值得写的。不过仔细想想还是学了很多,过来的一年,感觉自己提高了很多。看问题的方式很多都变了。

 

    不多说了,继续保持我博客的风格,纯技术,没废话

 

Sruts2使用自带校验器应对单类多action方法及符合字段的情况

对于普通的一个action对应一个类,在类中定义execute执行action的情况很简单,相信大多数文章都会介绍到。本文主要针对一个类中对应多个action方法的情况,以及利用Struts2的类型转换已符合属性转为对象后进行校验的情况。

以例子说明,有一个类LoginAction有两个方法,loginregist分别对应于login.actionregist.action。则需要在LoginAction.java的目录下建立LoginAction-login-validation.xmlLoginAction-regist-validation.xml来分别对应两个action的校验。

下面是LoginAction-login-validation.xml的内容:

<?xml version="1.0" encoding="GBK"?>

<!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="user">

                   <field-validator type="visitor">

                            <param name="context">login</param>

                            <message key="login.error.message" />

                   </field-validator>

         </field>

</validators>

文件中<param name="context">login</param>中的login可以随意填,只要后面讲到的另一个xml文件的名字与其对应即可。

下面是LoginAction-regist-validation.xml的内容:

<?xml version="1.0" encoding="GBK"?>

<!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="user">

                   <field-validator type="visitor">

                            <param name="context">regist</param>

                            <message key="login.error.message" />

                   </field-validator>

         </field>

</validators>

要校验的页面中如果没有使用类型转换成符合属性的对象,就不必使用visitor的校验器,也就是说如果在登陆界面中提供了用户名和密码字段,而注册页面中提供了用户名,密码,年龄等其他字段,而在LoginAction中这些字段都作为属性存在,则不需要visitor校验器了,就在上面的两个xml配置文件中定义校验信息即可。

使用visitor类型的校验器对应的情况是在LoginAction使用了User对象,该对象具有用户名,密码,年龄等属性。这样就需要在User.java所在的目录下再建立两个文件,User-login-validation.xmlUser-regist-validation.xml。这两个文件名中loginregist与之前的xml文件中<param name="context">后制定的一致。

User-login-validation.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!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="username">

        <field-validator type="requiredstring">

            <message key="login.error.username" />

        </field-validator>

    </field>

   

    <field name="password">

        <field-validator type="requiredstring">

            <message key="login.error.password" />

        </field-validator>

    </field>

</validators>

User-regist-validation.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!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="username">

        <field-validator type="requiredstring">

            <message key="regist.error.username" />

        </field-validator>

       

        <field-validator type="stringlength">

                 <param name="maxLength">20</param>

            <message key="rgist.username.maxlength">

            </message>

        </field-validator>

    </field>

   

    <field name="password">

        <field-validator type="requiredstring">

            <message key="regist.error.password" />

        </field-validator>

       

        <field-validator type="stringlength">

                 <param name="maxLength">20</param>

            <message key="rgist.password.maxlength">

            </message>

        </field-validator>

    </field>

   

    <field name="password2">

        <field-validator type="requiredstring">

            <message key="regist.error.password2" />

        </field-validator>

    </field>

   

    <field name="email">

        <field-validator type="requiredstring">

            <message key="regist.error.email" />

        </field-validator>

       

        <field-validator type="regex">

                 <param name="expression">

                           <![CDATA[(^[/w]+(/.[/w]+)*@[/w]+(/.[/w]+)+$)]]>

                 </param>

            <message key="regist.error.format.email" />

        </field-validator>

       

        <field-validator type="stringlength">

                 <param name="maxLength">50</param>

            <message key="rgist.email.maxlength">

            </message>

        </field-validator>

    </field>

   

    <field name="phone">

        <field-validator type="requiredstring">

            <message key="regist.error.phone" />

        </field-validator>

       

        <field-validator type="stringlength">

                 <param name="maxLength">20</param>

            <message key="rgist.phone.maxlength">

            </message>

        </field-validator>

    </field>

   

    <field name="hobby">

        <field-validator type="stringlength">

                 <param name="maxLength">50</param>

            <message key="rgist.hobby.maxlength">

            </message>

        </field-validator>

    </field>

</validators>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值