java oval xml 校验
来源:互联网 发布:网络维护专员岗位职责 编辑:程序博客网 时间:2024/05/18 02:29
这个xml里包含了<notNull />,<notBlank />,<validateWithMethod />,<dateRange />,<pattern />等几种校验,比较有特点的是可以自定义方法校验validateWithMethod,有了这个就可以将校验扩展的更加强大,比如说可以将数据跟数据库里的数据进行比较校验。还有其他校验,可以参考源码,或问我。<?xml version="1.0" encoding="UTF-8"?><!-- <!DOCTYPE oval PUBLIC "-//OVal/OVal Configuration DTD 1.3//EN" "http://oval.sourceforge.net/oval-configuration-1.3.dtd">--><oval xmlns="http://oval.sf.net/oval-configuration" xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://oval.sf.net/oval-configuration ../../../../../../../../main/resources/net/sf/oval/configuration/xml/oval-configuration.xsd"> <!-- define a constraint set --> <!--<constraintSet id="user.userid"> <notNull message="{context} is null" /> <matchPattern message="{context} does not match the pattern {pattern}"> <pattern pattern="\\d{15}|\\d{17}+[\\dX]" flags="0" /> </matchPattern> </constraintSet>-->
<class type="com.haove.oval.TrainData" overwrite="false" applyFieldConstraintsToSetters="false"> <field name="sfzh"> <matchPattern message="身份证号不符合规则"> <pattern pattern="[0-9]{15}|[0-9]{17}[0-9X]" flags="0" /> </matchPattern> </field> <field name="xm"> <length min="1" max="24" message="姓名为 {min} 至 {max}个字符" /> <validateWithMethod methodName="isValid" parameterType="java.lang.String" message="姓名与学籍库不一致"/> </field> <field name="qjStart"> <length min="1" message="区间起点不能少于{min}个字符" /> </field> <field name="qjEnd" overwrite="true"> <length min="1" message="区间终点不能少于{min}个字符" /> </field>
<field name="rxrq"> <matchPattern message="入学日期为8位数字"> <pattern pattern="[0-9]{8}"/> </matchPattern> </field> <field name="yhcs"> <matchPattern message="优惠次数为一位或两位数字"> <pattern pattern="[0-9]{1,2}" flags="0" /> </matchPattern> </field> <field name="kxlh"> <length min="1" message="卡序列号不能少于{min}个字符" /> </field> </class></oval>
另外,经查源码,发现方法public List<ConstraintViolation> validateFieldValue(final Object validatedObject, final Field validatedField, final Object fieldValueToValidate)可以只校验自己想校验的field,不会校验全部field,这个在有些时候还是蛮有用的。
另外附上,使用xml校验的java源码例子:
import java.lang.reflect.Field;import java.util.List;import net.sf.oval.ConstraintViolation;import net.sf.oval.Validator;import net.sf.oval.configuration.xml.XMLConfigurer;public class TrainData { private String xm; private String sfzh; private String qjStart; private String qjEnd; private String rxrq;// @ValidateWithMethod(methodName = "isValid", parameterType = String.class) private String yhcs; private String kxlh; public TrainData(){} public TrainData(String xm, String sfzh, String qjStart, String qjEnd, String rxrq, String yhcs, String kxlh){ this.xm = xm; this.sfzh = sfzh; this.qjStart = qjStart; this.qjEnd = qjEnd; this.rxrq = rxrq; this.yhcs = yhcs; this.kxlh = kxlh; } private boolean isValid(String xm) { //to do 数据库根据身份证号查询出的姓名进行比较 if("1".equals(xm)) return true; return false; } public static void main(String[] args) { try{ TrainData data = new TrainData("刘艳梅","11010619770201304","","","20050101","2","123"); XMLConfigurer x2 = new XMLConfigurer(); x2.fromXML(XMLConfigurationTest.class.getResourceAsStream("TrainDataValidation.xml")); Validator validator = new Validator(x2);// Validator validator = new Validator();// Field f=TrainData.class.getDeclaredField("xm");// List<ConstraintViolation> violations = validator.validateFieldValue(new TrainData(), f, "12"); List<ConstraintViolation> violations = validator.validate(data); for(ConstraintViolation var:violations){ System.out.println(var.getMessage()); } }catch(Exception ex){ } }}
所有参考的网址:
http://oval.sourceforge.net/userguide.html,
http://oval.sourceforge.net/api/index.html
http://sourceforge.net/projects/oval/forums/forum/488110/topic/4709092
- java oval xml 校验
- Java对象校验框架之Oval
- Java对象校验框架之Oval
- [总结][Excel导入Oval验证][Java][Oval]
- 数据对象安全校验(oval框架)
- OVAL
- XSD校验XML JAVA实现
- java通过schema校验xml
- Java通过XML Schema校验XML
- Java通过XML Schema校验XML
- Java通过XML Schema校验XML
- Java通过XML Schema校验XML
- java 验证框架oval的使用方法
- JBPM流程部署校验之java利用XSD校验XML
- Android xml shape=oval 实心圆不是空心圆
- JAVA中使用Schema校验XML
- JAVA中使用Schema校验XML
- JAVA中使用Schema校验XML
- jquery小例子
- 读书有感
- 系统架构师浅谈软件架构设计的策略
- c++小感悟
- oracle中的视图详解
- java oval xml 校验
- GNU Octave进行科学绘图的一些问题
- flash php post session
- mapreduce读取sequencefile文件中的数据
- java反射原理
- 3D图形学算法
- oracle 10g中如何创建用户并授权
- 我之异常原则
- Windows7 启用 administrator