引入服务器端表单验证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是一个基于Java的开源Web应用框架,它提供了一种高效、灵活的...参考提供的文档和资源,如《Webx配置文件加载顺序与作用.docx》、《webx基础.docx》和《表单验证webx.pptx》,将有助于进一步提升WebX的使用技能。
3. **动态表单**:WebX 支持动态表单生成,允许开发者通过配置文件定义表单字段和验证规则,自动根据数据库结构生成表单,减少了重复代码。 4. **数据库操作**:WebX 提供了强大的数据库操作接口,支持SQL语句的...
- **强大的表单处理**:Webx提供了一套完整的表单验证和处理机制,支持自定义验证规则。 - **灵活的URL映射**:开发者可以根据需要自定义URL映射规则,实现友好的URL设计。 - **易扩展**:Webx的模块化设计使得添加...
Webx是基于Java的Web应用框架,它具有高成熟度和可靠性,并且具备强大的开放性和扩展性。Webx框架的文档详细介绍了该框架的设计理念、历史、优势以及与Spring框架的集成等方面。文档内容主要分为两大部分:Webx框架...
Webx的设计理念建立在层次化架构之上,提倡页面驱动、约定优于配置等设计原则。它的出现为Java开发者提供了一个可以替代传统Spring开发模式的新选择,特别是对于需要构建高效、可扩展Web应用的开发者。 在Webx框架...
**淘宝WEBX框架详解** 淘宝WEBX框架是一个专为大型电子商务平台设计的高效、可扩展的Web应用程序开发框架。这个框架由阿里巴巴技术部门研发,旨在提高开发效率,保证系统的稳定性和可维护性,同时降低新手入门的...
在Webx Framework之上,Webx Turbine作为一个页面处理层,采用了页面驱动的设计理念,这意味着Webx Turbine重视页面生成和页面流程的管理。页面布局和处理页面的基本流程是Webx Turbine的主要功能。Webx还支持依赖...
WEBX是阿里巴巴的内部框架,“就是把页面与Service层之间的一些Servlet等公共的东西抽象出来,提供相应的服务以提高开发效率(《接口测试之Webx简介》—何晓峰 )”,可以看出,webx和传统的servlet-action模式的...
本文将对Webx进行深入探讨,主要涵盖其核心概念、工作原理以及与之相关的工具使用。 【描述】: 虽然描述信息为空,但我们可以从“博文链接”中推测,该文档可能包含了一篇关于Webx框架的博主个人经验总结,可能...
webx3.0学习小结
### Webx3.0框架概览 #### 一、引言 随着互联网技术的飞速发展,企业级应用的需求越来越复杂多样。为了更好地满足这些需求,阿里巴巴集团旗下的淘宝团队开源了Webx3.0框架。这是一个面向Web开发的Java框架,它在...
WebX是一个基于Java的开源Web应用框架,专为构建企业级的B/S系统而设计。本入门指南示例程序旨在帮助初学者快速理解和掌握WebX的基本用法。通过结合提供的博客文章和代码,我们将深入探讨以下几个核心知识点: 1. *...
llerServlet 是 Webx 框架的核心组件,它负责处理所有以 .htm 和 .do 结尾的请求。...对于初学者来说,理解 Webx 的核心概念,如 ControllerServlet 和服务配置,是进一步学习和使用 Webx 的关键。
3. **组件**:WebX3提供了丰富的组件库,如表格、表单、按钮等,用于构建用户界面。 4. **控制器和服务**:控制器处理用户请求,调用服务执行业务逻辑,然后返回结果给视图。 5. **视图**:展示给用户的界面,通常由...
Webx-SpringExt是Webx框架的一个扩展,它与Spring框架进行了深度集成,旨在提供更高效、更灵活的Web应用程序开发环境。Eclipse是一个广泛使用的Java集成开发环境(IDE),而这里的"webx-springExt整合eclipse插件"是...
阿里巴巴的J2EE Webx框架是一个企业级的Java应用程序框架,专为构建高效、可扩展且易于维护的Web应用程序而设计。Webx框架的核心理念是模块化,这使得开发过程更加灵活,允许开发者将应用程序的不同部分(如业务逻辑...
【通用WEB框架 Webx】 Webx是一个基于Java Servlet API构建的通用WEB框架,它为开发者提供了构建高效、可扩展的Web应用程序的工具和方法。Webx的核心理念是简化Web应用开发,通过提供丰富的组件和模式,让开发者...
### Webx3 PDF(阿里巴巴前端Web框架):深入解析与技术要点 #### 引言 Webx是一款由阿里巴巴推出的前端Web框架,旨在提供一个高效、灵活且可扩展的基础架构来支持大规模Web应用的开发。本文章将从Webx框架的核心...