`
shuaigg.babysky
  • 浏览: 571504 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

struts2的输入校验

阅读更多

 

客户端校验的时候直接使用<s:form validate='true'>就可以了,注意:

1.不能去掉theme=simple

2.不能使用key标签来取得国际化中的参数。而应该使用${getText('xxx')}的方式来取得信息。

 

其实这个客户端校验很烂,大家别用了。我的观点。呵呵

 

 

int 整数;
double 实数;
date 日期;
expression  两数的关系比较;
email Email地址;
url 网址
visitor 使用visitor模式 对应复合类型 比如自定义User Person等
        RegistAction-validation.xml
        <validators>
            <field name="user">
                <field-validator type="visitor">
                    <param name="context">hahaha</param>
                    <!--
                        在提示信息的前面加东西,message中为前面添加的东西
                     -->
                    <param name="appendPrefix">true</param>
                    <message>用户的:</message>
                </field-validator>
            </field>
        </validators>
        对应user类型 对应context
        MyUser-hahaha-validation.xml
        <validators>
            <field name="name">
                <field-validator type="requiredstring">
                    <param name="trim">true</param>
                    <message>必须输入名字</message>
                </field-validator>
                <field-validator type="regex">
                    <param name="expression"><![CDATA[(\w{4,25})]]></param>
                    <message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
                </field-validator>
            </field>
            <field name="pass">
                <field-validator type="requiredstring">
                    <param name="trim">true</param>
                    <message>必须输入密码</message>
                </field-validator>
                <field-validator type="regex">
                    <param name="expression"><![CDATA[(\w{4,25})]]></param>
                    <message>您输入的密码只能是字母和数组,且长度必须在4到25之间</message>
                </field-validator>
            </field>
            <field name="age">
                <field-validator type="int">
                    <param name="min">1</param>
                    <param name="max">150</param>
                    <message>年纪必须在1到150之间</message>
                </field-validator>
            </field>
            <field name="birth">
                <field-validator type="date">
                    <param name="min">1900-01-01</param>
                    <param name="max">2050-02-21</param>
                    <message>年纪必须在${min}到${max}之间</message>
                </field-validator>
            </field>
        </validators>         
conversion 转换错误    转换错误时的提示,应屏蔽掉默认提示:修改messageResource.properties中xwork.default.invalid.fieldvalue=,否则会出现两次提示
           同时转换Action的properties文件中invalid.fieldvalue.person=xxx 这样不校验的出错信息会是这个值
regex 正则表达式验证;
required 是否为空;
requiredstring 必须字符;
stringlength 输入字符长度限制;
<?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="xxx">
       
    </field>
</validators>

    <field name="name">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>必须输入名字</message>
            <!--
                <message>${getText("name.requried")}</message>
             -->
        </field-validator>
        <field-validator type="regex">
            <param name="expression"><![CDATA[(\w{4,25})]]></param>
            <message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
            <!--
                <message>${getText("name.requried")}</message>
             -->

        </field-validator>
    </field>

    <field name="age">
        <field-validator type="int">
            <param name="min">1</param>
            <param name="max">150</param>
            <message>年纪必须在1到150之间</message>
            <!--
                <message>${getText("name.requried")}</message>
             -->

        </field-validator>
        </field>
   
    <field name="birth">
        <field-validator type="date">
            <param name="min">1900-01-01</param>
            <param name="max">2050-02-21</param>
            <message>年纪必须在${min}到${max}之间</message>
            <!--
                <message>${getText("name.requried")}</message>
             -->

        </field-validator>
    </field>
   
    <field name="repassword">
        <field-validator type="fieldexpression">
            <param name="expression"><![CDATA[(repassword == password)]]></param>
            <message>两次输入密码不相同</message>
        </field-validator>
    </field>

    <field name="email">
        <field-validator type="email">
            <message>您输入的电子邮件必须是一个合格的邮件地址!</message>
        </field-validator>
    </field>

    <field name="initPrice">
        <field-validator type="required">
            <message>起拍价格必填!</message>
        </field-validator>
        <field-validator type="double">
            <param name="min">1</param>
            <message>起拍价格必须大于1元</message>
        </field-validator>
    </field>
   
    <field name="userInfo.name">
        <field-validator type="requiredstring" short-circuit="true">
        <param name="trim">true</param>
        <message><![CDATA[<span class='error'>姓名不能为空</span>]]></message>
        </field-validator>
    </field>
   
    <field name="trainingerInfo.password">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message><![CDATA[<span class='error'>请输入password</span>]]></message>
        </field-validator>

        <field-validator type="stringlength">
            <param name="minLength">6</param>
               <param name="maxLength">25</param>
            <message><![CDATA[<span class='error'>您输入的密码过长或者过短</span>]]></message>
        </field-validator>
    </field>
   
   
    <field name="trainingCourse.startDate">
        <field-validator type="date" short-circuit="true">
            <message><![CDATA[<span class='error'>请输入正确的日期</span>]]></message>
        </field-validator>
    </field>
   
    <field name="hr.password">
         <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message><![CDATA[<span class='error'>请填写密码,不能为空</span>]]></message>
        </field-validator>
        <field-validator type="stringlength"> 
            <param name="minLength">6</param> 
            <param name="maxLength">16</param> 
            <message>请认真填写邮箱长度在${minLength} - ${maxLength} 之间</message> 
        </field-validator> 
    </field>

 

 

 

小例子

 

<?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="user.username">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入用户名</message>
        </field-validator>
       
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">6</param>
               <param name="maxLength">20</param>
            <message>用户名必须是6-20个字符</message>
        </field-validator>
    </field>
   
    <field name="user.password">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入密码</message>
        </field-validator>
       
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">8</param>
               <param name="maxLength">15</param>
            <message>密码必须是8-15个字符</message>
        </field-validator>
    </field>
   
    <field name="user.repassword">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入重复密码</message>
        </field-validator>
       
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">8</param>
               <param name="maxLength">15</param>
            <message>重复密码必须是8-15个字符</message>
        </field-validator>
       
        <field-validator type="fieldexpression" short-circuit="true">
            <param name="expression"><![CDATA[(user.repassword == user.password)]]></param>
            <message>两次输入密码必须相同</message>
        </field-validator>
    </field>
   
    <field name="user.age">
        <field-validator type="required">
            <message>年龄必须输入</message>
        </field-validator>
        <field-validator type="conversion" short-circuit="true"> 
                <message>年龄转换错误,请输入整数</message> 
        </field-validator>       
        <field-validator type="int" short-circuit="true">
            <param name="min">1</param>
               <param name="max">100</param>
            <message>年龄必须介于1到100之间</message>
        </field-validator>
    </field>
   
    <field name="user.address">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入地址</message>
        </field-validator>
       
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">5</param>
               <param name="maxLength">1000</param>
            <message>地址介于5-1000个字符之间</message>
        </field-validator>
    </field>
   
    <field name="user.email">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入Email</message>
        </field-validator>
       
        <field-validator type="email" short-circuit="true">
            <message>请输入合法的Email地址</message>
        </field-validator>
    </field>
   
   
    <field name="user.url">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入URL</message>
        </field-validator>
       
        <field-validator type="url">
            <message>必须输入合法的URL</message>
        </field-validator>
    </field>
   
    <field name="user.postCode">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>必须输入邮编</message>
        </field-validator>
       
        <field-validator type="regex">
            <param name="expression"><![CDATA[\d{6}]]></param>
            <message>邮编必须是6位数字</message>
        </field-validator>
    </field>
   
    <field name="jiaozi">
        <field-validator type="required">
            <message>饺子数必须填写</message>
        </field-validator>   
        <field-validator type="double">
              <param name="minInclusive">20.1</param>
              <param name="maxInclusive">50.1</param>
              <message>饺子需要在${minInclusive}和${maxInclusive}之间</message>
        </field-validator>
  </field>
   
   
   
   
</validators>

分享到:
评论

相关推荐

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    Struts 2 输入校验

    Struts 2 输入校验

    Struts2 输入校验

    本篇文章将深入探讨Struts2中的输入校验机制。 一、Struts2 输入校验概述 Struts2提供了多种进行输入校验的方式,包括Action级别校验、Validator框架校验、拦截器校验以及使用JSR303/JSR349 Bean Validation标准。...

    struts2输入校验

    本文将深入探讨Struts2中的输入校验机制,以及如何对指定方法进行输入校验。 在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但...

    struts2输入校验深入总结

    本文将深入探讨Struts2中的输入校验机制,帮助开发者更好地理解和应用。 一、Struts2输入校验概述 在Struts2中,输入校验主要用于验证用户通过表单提交的数据,防止无效或恶意数据进入系统。Struts2提供了多种方式...

    Struts2的输入校验

    在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...

    [原]Struts2输入校验

    在Struts2中,输入校验是确保数据安全性和应用稳定性的重要环节。它帮助开发者防止非法或无效的数据进入系统,从而减少潜在的错误和安全漏洞。 **Struts2输入校验机制** 1. **内置验证框架**: Struts2提供了内置的...

    Struts2输入校验

    要求使用Struts2的内建校验器校验“书名”、“作者”、“出版日期”、“价格”和“库存数量”字段;要求手动编写代码校验“书号”的有效性;要求手动编写代码校验“出版社”字段中是否包含了“出版社”三个字。

    struts2输入校验总结

    Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...

    Struts2的输入校验实例代码

    在Struts2中,输入校验是确保数据完整性和安全性的重要环节。输入校验可以防止恶意用户提交无效或有害的数据,并确保应用程序的稳定运行。以下是关于Struts2输入校验的详细知识: 1. **客户端校验**: 客户端校验...

    Struts2数据校验与国际化

    Struts2作为一款流行的Java Web框架,其在处理用户输入数据和实现多语言支持方面具有强大的功能。在“Struts2数据校验与国际化”这一主题中,我们将深入探讨Struts2如何通过不同的验证机制确保数据的有效性,以及...

    Struts2 校验器

    在Struts2中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章可能是关于如何使用Struts2的内置校验机制以及自定义校验规则的探讨。 Struts2的校验框架...

    浪曦_Struts2应用开发系列_第5讲.Struts2的输入校验.rar

    在Struts2框架中,输入校验是一个关键环节,它确保了用户提交的数据符合应用的要求,从而避免了无效数据导致的错误或安全问题。本讲将深入探讨Struts2的输入校验机制。 1. **Struts2输入校验概述** - 输入校验是...

    struts2中的输入校验

    在Struts2中,输入校验是确保用户提交的数据符合预设规范的重要环节,可以防止非法数据进入系统,保护数据的完整性和安全性。本文将详细探讨Struts2中的输入校验机制。 首先,Struts2提供了两种主要的校验方式:...

Global site tag (gtag.js) - Google Analytics