struts2表单验证

1.需求

1.1在用户提交表单时,需要对用户的表单数据进行验证。如验证如下表单

    <s:form action="register" method="post" validate="true">
        <s:textfield label="用户名" name="user.username"></s:textfield>
        <s:password label="密码" name="user.password1"></s:password>
        <s:password label="确认密码" name="user.password2"></s:password>
        <s:textfield label="年龄" name="user.age"></s:textfield>
        <s:textfield label="生日" name="user.birthday"></s:textfield>
        <s:textfield label="email" name="user.email"></s:textfield>
        <s:submit value="提交"></s:submit>
    </s:form>

以下是数据的要求

1)  用户名:不允许为空,且长度在3至10之间
2)  密码:不允许为空,且必须是字母或数字,同时长度必须在4~15之间
3)  确认密码:必须和密码一致
4)  年龄:不允许为空,必须是整数,且必须在10~150之间
5)  生日:必须是日期类型,且必须在1990-01-01和2017-03-31之间
6)  Email:必须符合email格式

2.实现struts的表单验证,以xml的方式

2.1使用struts2的xxxAction-validation.xml文件方式验证,文件与Action在同一个目录下,如果验证失败则调至result name=’input’

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC  
    "-//Apache Struts//XWork Validator 1.0.2//EN"  
    "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    <validators>
        <field name="user.username">
            <field-validator type="requiredstring">
                <param name="trim">true</param>
                <message key="error.name.requiredstring"/>
            </field-validator>
            <field-validator type="stringlength">
                <param name="minLength">3</param>
                <param name="maxLength">12</param>
                <message key="error.namelength"/>
            </field-validator>
        </field>

        <field name="user.password1">
            <field-validator type="requiredstring">
                <param name="trim">true</param>
                <message key="error.password1.requiredstring"/>
            </field-validator>
            <field-validator type="regex">
                <param name="regexExpression"><![CDATA[(\w{6,16})]]></param>
                <message key="error.password"></message>
            </field-validator>
        </field>

        <field name="user.password2">
            <field-validator type="requiredstring" short-circuit="true">
                <param name="trim">true</param>
                <message>确认密码不许为空</message>
            </field-validator>
            <field-validator type="fieldexpression">
                <param name="expression"><![CDATA[password1==password2]]></param>
                <message key="error.passwordequals"></message>
            </field-validator>
        </field>

        <field name="user.age">
            <field-validator type="int">
                <param name="min">1</param>
                <param name="max">150</param>
                <message key="error.age"></message>
            </field-validator>
        </field>

        <field name="user.birthday">
            <field-validator type="date">
                <param name="min">1980-01-01</param>
                <param name="max">2011-01-01</param>
                <message key="error.birthday">
                </message>
            </field-validator>
        </field>

        <field name="user.email">
            <field-validator type="email">
                <message key="error.email"></message>
            </field-validator>
        </field>

    </validators>

2.2为了可扩展性,可以建议一个错误信息的资源文件

error.name.requiredstring=用户名不许为空
error.namelength=用户名的长度是${minLength}到${maxLength}之间

...

2.3如果验证成功了,将会继续执行Action

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值