`
lenozhi
  • 浏览: 52328 次
社区版块
存档分类
最新评论

初步设计校验器框架

阅读更多
项目中有一批文十几种类别,每个文件有若干列。需要对十几类文件做不同类型的校验。如:非空、非数值、长度等。原来就是一堆方法校验,后来重构了下,引入了校验配置文件:

<?xml version="1.0" encoding="GBK" ?>
<sc>

	<package value="validator."/>
	
	<A01>
		<column id="1" name="gsdm" >
			<validator className="V1">
				<attribute id="length" value="12"/>
				<attribute id="name" value="1col v1 Validator1"/>
				<attribute id="memo" value="test"/>
			</validator>
			<validator className="V2">
				<attribute id="length" value="12"/>
				<attribute id="name" value="1col v1 Validator2"/>
			</validator>
		</column>
		
		<column id="2" name="gsdm1">
			<validator className="V1">
				<attribute id="length" value="12"/>
				<attribute id="l" value="2"/>
				<attribute id="name" value="2col v1 Validator1"/>
			</validator>
		</column>
		
		<column id="3" name="gsdm" >
			<validator className="V3">
				<attribute id="length" value="12"/>
				<attribute id="name" value="3col length Validator"/>
			</validator>
			<validator className="V2">
				<attribute id="length" value="12"/>
				<attribute id="name" value="3col length Validator2"/>
			</validator>
		</column>
		
		<column id="4" name="gsdm" >
			<validator className="V1">
				<attribute id="length" value="12"/>
				<attribute id="name" value="4col length Validator"/>
			</validator>
		</column>
	
	</A01>
	
</sc>

说明:A01是一类文件,包含若干column,每个column用id标识。每个column可配置1个或多个validator即校验器,validator可有0到N个attribute(属性)。

这样通过解析这个XML文件,做如下组织:
文件校验器MAP:
      KEY 对应列ID
    VALUE 对应该列配置的校验器集合,目前实现采用数组。




对于validator校验器,定义一个接口,实现即可。也可以再做个抽象类,这个自己选择就好。
分享到:
评论

相关推荐

    拦截器 与 校验器 源代码

    拦截器可以先对请求进行初步的合法性检查,如验证用户是否已登录,然后校验器负责处理更具体的数据验证。例如,在用户提交表单时,拦截器检查用户是否登录,如果未登录则跳转到登录页面;登录后,由校验器验证表单...

    供配电系统电气部分初步设计课程设计报告.doc

    供配电系统电气部分初步设计课程设计...这些内容构成了一个完整的供配电系统电气部分初步设计的基本框架,通过这样的课程设计,学生能够综合运用理论知识解决实际问题,为未来从事电力系统设计和管理工作奠定坚实基础。

    struts2框架2016版资料day01

    这个"struts2框架2016版资料day01"涵盖了Struts2的基础知识,包括框架的基本架构、核心概念和初步配置。传智播客作为知名的IT教育机构,其课程内容通常严谨且实用,适合初学者快速入门。 1. **Struts2框架概述**:...

    ssh框架简单教程(附案例)

    SSH框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中广泛使用的三大开源框架...在深入学习过程中,你将逐步掌握更多高级特性,如拦截器、数据校验、事务管理等,从而更好地应对复杂的Web应用开发挑战。

    ssh框架用struts2 hibernate实现图片的上传源码

    1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它通过拦截器模型来处理用户的请求。在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts....

    JAVAWeb课程设计报告--注册登录系统--用SSH框架整合实现注册登录系统.doc

    在客户端,JavaScript可以用来执行初步的输入验证,如非空检查、格式校验等,减少无效请求,提高用户体验。 综上所述,通过这个JAVAWeb课程设计,学生能够深入了解SSH框架整合开发的整个流程,从需求分析、数据库...

    基于STM32的UART解析框架

    为了提高效率,可以在中断处理中仅完成数据的初步处理,如检查校验和,然后将完整或部分处理过的数据放入一个队列,由主循环或其他线程进一步处理。 此外,确保处理串口通信的实时性和稳定性至关重要。需要合理设置...

    无线遥控器设计程序源码

    4. 高抗冲聚苯乙烯板:这种材料轻便且耐用,适合制作遥控器的框架和支架,可以使用切割工具进行定制。 三、软件设计 1. 初始化配置:编写初始化代码,设置nRF24L01的工作模式、频道、数据率、地址等参数。 2. 数据...

    DISCOVER-分布式视频编码框架

    在DISCOVER框架中,信源编码器负责对原始视频流进行初步处理,生成一组带有冗余信息的编码片断。这些片断随后由信道编码器进一步处理,以适应不同的网络条件。解码端则执行相反的操作,将接收到的编码片断解码并重组...

    struts2笔记_初步修改版_.

    Struts2是一个基于MVC(Model-View-Controller)设计模式的开源JavaEE框架,用于构建企业级Web应用程序。这个框架极大地简化了Java Web开发,提供了丰富的特性来处理请求、控制流程、展示视图以及与数据库交互。在...

    基于NFC手机的RFID中间件设计

    协议校验采用标识位进行初步校验;标签缓存使用BlockingQueue队列存储数据;冗余数据处理利用Sorted Neighborhood Method(SNM)算法去除重复数据;数据校验使用CRC16算法确保数据完整性和安全性;数据分类则是按照...

    java课程设计(通讯录管理系统).pdf

    在提供的文件片段中,描述了一个基于Java的通讯录管理系统的登录功能实现,其中涉及到了多个知识点,包括Java编程语言基础、MVC设计模式、Java Web开发技术以及一些设计模式的初步运用。由于文件中的代码片段存在...

    【Demo】Editor.md的初步使用

    如果你希望编辑器符合自己的设计风格,可以通过修改CSS样式或者使用预定义的主题进行调整。Editor.md允许你自定义预览区和编辑区的背景颜色、字体大小等。 9. **多语言支持** 编辑器支持多语言,包括中文、英文等...

    通用电子商务平台项目详细设计文档

    - **目标群体**:本设计文档旨在为项目发起人、最终用户、项目投资方、项目管理团队、项目执行团队以及所有相关利益方提供明确的业务背景、业务范围、基本业务逻辑与框架。 #### 二、参考文档 - **需求分析说明书*...

    014基于51单片机手机拨号模块设计(包含仿真和源程序)

    通常使用UART(通用异步收发传输器)协议,设置合适的波特率、数据位、停止位和校验位,以确保数据正确传输。 4. 软件仿真:在开发过程中,软件仿真工具如Keil uVision或Proteus可以帮助我们测试和调试代码。通过...

    安卓系统服务中输入验证型漏洞的初步分析.pdf

    ### 安卓系统服务中输入验证型漏洞的初步分析知识点 #### 1. 输入验证型漏洞的重要性 在Web安全领域,输入验证型漏洞一直是研究的重点,因为它涉及到数据输入的合法性校验,是防止非法数据注入的有效措施。然而,在...

    2.4G无线模块Demo初步

    1. 完善数据包处理:设计合适的数据帧格式,包含必要的同步字、校验和等信息。 2. 错误检测和恢复机制:如加入CRC校验以检测并纠正传输错误。 3. 无线模块的配置:设置工作频道、发射功率、数据速率等参数以适应应用...

    jsp网页设计40种常见的网页技巧

    25. **使用MVC设计模式**:分离模型、视图和控制器,提高代码结构清晰度。 26. **JSP内置对象**:理解page、request、session、application等对象的作用和使用。 27. **页面跳转与重定向**:何时使用`response....

Global site tag (gtag.js) - Google Analytics