您的位置:首页 > 运维架构 > 网站架构

j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证

2017-08-25 00:00 537 查看
《j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目》
《j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境》
《j2ee 简单网站搭建:(三)在搭建好的 spring maven web 项目中加入 mybatis 访问数据库》
《j2ee 简单网站搭建:(四)将 freemaker 模板引擎作为 spring-mvc 展现层》
《j2ee 简单网站搭建:(五)使用 jcaptcha 生成验证码图片》
《j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证》
《j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录》
《j2ee 简单网站搭建:(八)使用 jquery-validate 实现页面验证入门》
《j2ee 简单网站搭建:(九)jquery datatables + jquery ui dialog 插件使用入门》
《j2ee 简单网站搭建:(十)jquery ztree 插件使用入门》
《j2ee 简单网站搭建:(十一)ckeditor 控件使用入门》

本文利用 hibernate validation 对 domain 层的实体类根据数据库的字段要求和限制进行验证,该验证库和 hibernate 结合时能够自动实现对实体类中各种字段的验证,但本文是通过单独调用实现,因此需要在需要进行验证的代码处手工代用实现。

一 在 pom.xml 中加入 hibernate validation 包

<properties>

<hibernate-validator.version>5.4.1.Final</hibernate-validator.version>

</properties>

<dependencies>

<!-- hibernate validator 实体类验证框架 start -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${javax-validation.version}</version>
</dependency>
<!-- hibernate validator 实体类验证框架 end -->

</dependencies>

二 在 com.binux.webdemo.util 包下新建 ValidationUtil.java 文件,提供 domain 层实体类验证的唯一方法。

package com.binux.webdemo.util;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Iterator;
import java.util.Set;

public class ValidationUtil {

//
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
/**
* 验证翻页基本参数是否正确
* @param start 数据起始索引
* @param length 数据长度
* @return
*/
public static boolean pagingParamValidate(Integer start, Integer length) {
if (start < 0 || length <1) return false;
return true;
}

/**
* bean属性验证
* @param t
* @param <T>
* @return
*/
public static <T> String beanValidate(T t){
StringBuffer buffer = new StringBuffer(64);//用于存储验证后的错误信息
Set<ConstraintViolation<T>> constraintViolations = validator.validate(t);//验证某个对象,,其实也可以只验证其中的某一个属性的
Iterator<ConstraintViolation<T>> item = constraintViolations.iterator();
while (item.hasNext())
buffer.append(item.next().getMessage());
return buffer.toString();
}
}

三 在 com.binux.webdemo.domain 下新建需要验证的 TestDomain.java 类,包含连个需要进行验证的属性字段。

package com.binux.webdemo.domain;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import java.io.Serializable;

@SuppressWarnings("serial")
public class TestDomain implements Serializable {

@NotBlank(message="不能为空")
@Length(min=1, max=30, message="长度不能大于30个字符")
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}

四 在需要调用的代码中添加以下内容即可完成对实体类的验证。

String ValidationResult = ValidationUtil.beanValidate(domain);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hibernate Validator
相关文章推荐