`
Yinny
  • 浏览: 295804 次
  • 性别: 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总结 项目实践总结

    WebX是一个基于Java的开源Web应用框架,它提供了一种高效、灵活的...参考提供的文档和资源,如《Webx配置文件加载顺序与作用.docx》、《webx基础.docx》和《表单验证webx.pptx》,将有助于进一步提升WebX的使用技能。

    webx

    3. **动态表单**:WebX 支持动态表单生成,允许开发者通过配置文件定义表单字段和验证规则,自动根据数据库结构生成表单,减少了重复代码。 4. **数据库操作**:WebX 提供了强大的数据库操作接口,支持SQL语句的...

    Webx及框架简介

    - **强大的表单处理**:Webx提供了一套完整的表单验证和处理机制,支持自定义验证规则。 - **灵活的URL映射**:开发者可以根据需要自定义URL映射规则,实现友好的URL设计。 - **易扩展**:Webx的模块化设计使得添加...

    webx3文档——web开发

    Webx是基于Java的Web应用框架,它具有高成熟度和可靠性,并且具备强大的开放性和扩展性。Webx框架的文档详细介绍了该框架的设计理念、历史、优势以及与Spring框架的集成等方面。文档内容主要分为两大部分:Webx框架...

    webx框架指南

    Webx的设计理念建立在层次化架构之上,提倡页面驱动、约定优于配置等设计原则。它的出现为Java开发者提供了一个可以替代传统Spring开发模式的新选择,特别是对于需要构建高效、可扩展Web应用的开发者。 在Webx框架...

    淘宝WEBX框架详解

    **淘宝WEBX框架详解** 淘宝WEBX框架是一个专为大型电子商务平台设计的高效、可扩展的Web应用程序开发框架。这个框架由阿里巴巴技术部门研发,旨在提高开发效率,保证系统的稳定性和可维护性,同时降低新手入门的...

    webx_guide

    在Webx Framework之上,Webx Turbine作为一个页面处理层,采用了页面驱动的设计理念,这意味着Webx Turbine重视页面生成和页面流程的管理。页面布局和处理页面的基本流程是Webx Turbine的主要功能。Webx还支持依赖...

    webx2.7绿色安装

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

    webx总结

    本文将对Webx进行深入探讨,主要涵盖其核心概念、工作原理以及与之相关的工具使用。 【描述】: 虽然描述信息为空,但我们可以从“博文链接”中推测,该文档可能包含了一篇关于Webx框架的博主个人经验总结,可能...

    Webx3.0小结

    webx3.0学习小结

    Webx介绍_PDF

    ### Webx3.0框架概览 #### 一、引言 随着互联网技术的飞速发展,企业级应用的需求越来越复杂多样。为了更好地满足这些需求,阿里巴巴集团旗下的淘宝团队开源了Webx3.0框架。这是一个面向Web开发的Java框架,它在...

    WebX入门指南示例程序

    WebX是一个基于Java的开源Web应用框架,专为构建企业级的B/S系统而设计。本入门指南示例程序旨在帮助初学者快速理解和掌握WebX的基本用法。通过结合提供的博客文章和代码,我们将深入探讨以下几个核心知识点: 1. *...

    创建简单的WEBX应用

    llerServlet 是 Webx 框架的核心组件,它负责处理所有以 .htm 和 .do 结尾的请求。...对于初学者来说,理解 Webx 的核心概念,如 ControllerServlet 和服务配置,是进一步学习和使用 Webx 的关键。

    webx3学习的demo,以及留言板的小例子

    3. **组件**:WebX3提供了丰富的组件库,如表格、表单、按钮等,用于构建用户界面。 4. **控制器和服务**:控制器处理用户请求,调用服务执行业务逻辑,然后返回结果给视图。 5. **视图**:展示给用户的界面,通常由...

    webx-springExt整合eclipse插件

    Webx-SpringExt是Webx框架的一个扩展,它与Spring框架进行了深度集成,旨在提供更高效、更灵活的Web应用程序开发环境。Eclipse是一个广泛使用的Java集成开发环境(IDE),而这里的"webx-springExt整合eclipse插件"是...

    阿里巴巴J2EE Webx框架简介

    阿里巴巴的J2EE Webx框架是一个企业级的Java应用程序框架,专为构建高效、可扩展且易于维护的Web应用程序而设计。Webx框架的核心理念是模块化,这使得开发过程更加灵活,允许开发者将应用程序的不同部分(如业务逻辑...

    通用WEB框架 Webx.zip

    【通用WEB框架 Webx】 Webx是一个基于Java Servlet API构建的通用WEB框架,它为开发者提供了构建高效、可扩展的Web应用程序的工具和方法。Webx的核心理念是简化Web应用开发,通过提供丰富的组件和模式,让开发者...

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

    ### Webx3 PDF(阿里巴巴前端Web框架):深入解析与技术要点 #### 引言 Webx是一款由阿里巴巴推出的前端Web框架,旨在提供一个高效、灵活且可扩展的基础架构来支持大规模Web应用的开发。本文章将从Webx框架的核心...

Global site tag (gtag.js) - Google Analytics