`
Yinny
  • 浏览: 293152 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Webx之表单验证

阅读更多
引入服务器端表单验证service,是通过在webx.xml中通过服务引入的方式完成的。例如,在user相关信息的表单验证的产生过程是这样的:webx-user.xml通过 <beans:import resource="user/form.xml" />引入form,xml表单验证配置,在form.xml中,通过services:form开始了表单的验证工作。


Webx表单验证服务主张验证逻辑和页面表现逻辑完全分离。所有的验证规则都写在一个单独的配置文件中 —— 页面模板是不需要关心这些验证规则的。当你需要修改验证规则时,只需要修改独立的配置文件就可以了,并不用修改页面模板。

开始配置表单验证服务。
每个表单验证服务可包含多个groups。
每个group可包含多个fields。
每个field可包含多个validators。







user/form.xml具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:services="http://www.alibaba.com/schema/services"
    xmlns:fm-conditions="http://www.alibaba.com/schema/services/form/conditions"
    xmlns:fm-validators="http://www.alibaba.com/schema/services/form/validators"
    xmlns="http://www.alibaba.com/schema/services/form/validators"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.alibaba.com/schema/services http://localhost:8080/schema/services.xsd
        http://www.alibaba.com/schema/services/form/conditions http://localhost:8080/schema/services-form-conditions.xsd
        http://www.alibaba.com/schema/services/form/validators http://localhost:8080/schema/services-form-validators.xsd
        http://www.springframework.org/schema/beans http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
    ">

    <services:form postOnlyByDefault="true">
        <!--
          - ===============================================
          - 用来检查csrf token。
          - ===============================================
         -->
        <services:group name="csrfTokenCheckGroup">
            <services:field name="csrfToken">
                <csrf-validator>
                    <message>提交的数据已过期</message>
                </csrf-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - 登录表单
          - ===============================================
         -->
        <services:group name="login" extends="csrfTokenCheckGroup">
            <services:field name="loginError">
                <custom-error id="invalidUserOrPassword">
                    <message>用户名或密码不正确,请重新输入</message>
                </custom-error>
            </services:field>
            <services:field name="userId" displayName="登录名">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="password" displayName="密码">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - 注册表单
          - ===============================================
         -->
        <services:group name="register" extends="csrfTokenCheckGroup">
            <services:field name="registerError">
                <custom-error id="duplicatedUserId">
                    <message>登录名“${userId}”已经被人注掉了,请尝试另一个名字</message>
                </custom-error>
            </services:field>
            <services:field name="userId" displayName="登录名">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <regexp-validator pattern="^[A-Za-z_][A-Za-z_0-9]*$">
                    <message>${displayName} 必须由字母、数字、下划线构成</message>
                </regexp-validator>
                <string-length-validator minLength="4" maxLength="10">
                    <message>${displayName} 最少必须由${minLength}个字组成,最多不能超过${maxLength}个字</message>
                </string-length-validator>
            </services:field>
            <services:field name="password" displayName="密码">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <string-length-validator minLength="4" maxLength="10">
                    <message>${displayName} 最少必须由${minLength}个字组成,最多不能超过${maxLength}个字</message>
                </string-length-validator>
                <string-compare-validator notEqualTo="userId">
                    <message>${displayName} 不能与 ${userId.displayName} 相同</message>
                </string-compare-validator>
            </services:field>
            <services:field name="passwordConfirm" displayName="密码验证">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <string-compare-validator equalTo="password">
                    <message>${displayName} 必须和 ${password.displayName} 相同</message>
                </string-compare-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - 注册account信息表单
          - ===============================================
         -->
        <services:group name="registerContact" extends="csrfTokenCheckGroup">
            <services:field name="firstName" displayName="名字" propertyName="account.firstName">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="lastName" displayName="姓氏" propertyName="account.lastName">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="address1" displayName="地址" propertyName="account.address1">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="address2" displayName="地址" propertyName="account.address2"> </services:field>
            <services:field name="city" displayName="城市" propertyName="account.city">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="zip" displayName="邮编" propertyName="account.zip">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <number-validator>
                    <message>${displayName} 必须是数字</message>
                </number-validator>
            </services:field>
            <services:field name="state" displayName="省份" propertyName="account.state">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="country" displayName="国家" propertyName="account.country">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="phone" displayName="电话" propertyName="account.phone">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="email" displayName="电子邮件" propertyName="account.email">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <mail-address-validator>
                    <message>${displayName} 必须是合法的e-mail</message>
                </mail-address-validator>
            </services:field>
        </services:group>
        <!--
          - ===============================================
          - 注册credit信息表单
          - ===============================================
         -->
        <services:group name="registerCredit" extends="csrfTokenCheckGroup">
            <services:field name="creditCardNumber" displayName="信用卡号码"
                propertyName="account.creditCardNumber">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
                <number-validator>
                    <message>${displayName} 必须是数字</message>
                </number-validator>
            </services:field>
            <services:field name="creditCardType" displayName="信用卡类型"
                propertyName="account.creditCardType">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="creditCardExpiryMonth" displayName="信用卡过期月份"
                propertyName="account.creditCardExpiryMonth">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
            <services:field name="creditCardExpiryYear" displayName="信用卡过期年份"
                propertyName="account.creditCardExpiryYear">
                <required-validator>
                    <message>必须填写 ${displayName}</message>
                </required-validator>
            </services:field>
        </services:group>
    </services:form>

</beans:beans>

  • 大小: 56 KB
分享到:
评论

相关推荐

    webx总结 项目实践总结

    webx3 启动顺序,webx使用总结,webx表单提交(感觉你还是看webx文档 貌似更加好哦!那个表单提交写的很是详细)

    webx2.7绿色安装

    WEBX是阿里巴巴的内部框架,“就是把页面与Service层之间的一些Servlet等公共的东西抽象出来,提供相应的服务以提高开发效率(《接口测试之Webx简介》—何晓峰 )”,可以看出,webx和传统的servlet-action模式的...

    Webx3.0小结

    webx3.0学习小结

    webx框架指南

    阿里开源框架webx的文档,想要学习webx或者维护webx的开发者可以下载

    创建简单的WEBX应用

    webx框架(淘宝框架),webx+spring+ibatis

    webx

    NULL 博文链接:https://xj84.iteye.com/blog/1850955

    Webx及框架简介

    Webx及框架简介 ppt 格式

    淘宝WEBX框架详解

    WEBX框架详解,更好的了解Taobao的开发过程,对于新手更容易上手。

    webx3文档——web开发

    该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用。

    Webx介绍_PDF

    淘宝开源Web开发框架Webx3.0介绍,内附宠物店程序作为例子详细解说webx框架的方方面面。

    阿里巴巴J2EE Webx框架简介

    阿里巴巴内部J2EE平台 Webx框架简介,现在是webx3.0,而且已经开源!

    webx_guide

    快速使用 webx 开发web 应用 Webx框架指南 Michael Zhou

    Webx3_Guide_Book.pdf 用户指南

    • 2002年,选择Jakarta Turbine作为WEB框架,并开始在此之上进行扩展。 • 2003年,经过大约一年的扩展,框架开始成熟。我们私下称这个经过改进的Turbine框架为 Webx 1.0。 • 2004年,借着淘宝网的第一次改版,...

    webx入门介绍

    webx框架是淘宝开发的比较流行的框架,这个是webx框架的入门介绍

    WebX入门指南示例程序

    WebX入门指南示例程序,通过结合博文:http://blog.csdn.net/fiboliu/article/details/50040273和代码讲解了,WebX入门级的使用指南!

    项目中用到的webx

    1.webx是阿里巴巴开发的mvc框架(就是spring mvc又封了一层) 2.此项目是个完整的项目,修改数据库配置后可直接运行(搜索data-source.xml) 3.webx自带的持久层是ibatis,我改成了hibernate 3.此为maven项目,jar包在项目...

    通用WEB框架 Webx.zip

    通用WEB框架 Webx ,Webx是建立在Java Servlet API基础上的的通用WEB框架。用Webx搭建的应用可以...

    webx-springExt整合eclipse插件

    webx-springExt整合eclipse插件,挺好用的

    webx3 PDF(阿里巴巴 前端web框架)

    webx3 PDF(阿里巴巴 前端web框架)

Global site tag (gtag.js) - Google Analytics