千家信息网

怎么理解Hibernate Validator

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"怎么理解Hibernate Validator"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2026年10月31日怎么理解Hibernate Validator

本篇内容介绍了"怎么理解Hibernate Validator"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

更好的方法Hibernate Validator

进行验证的一种典型方法是对简单的验证使用 Commons Validator,并在控制器中编写其他一些验证逻辑。Commons Validator 可以生成 JavaScript 来对视图中的验证进行处理。但是 Commons Validator 也有自己的缺陷:它只能处理简单的验证问题,并且将验证的信息都保存到了 XML 文件中。Commons Validator 被设计用来与 Struts 一起使用,而且没有提供一种简单的方法在应用程序层间重用验证的声明。

在规划有效性验证策略时,选择在错误发生时简单地处理这些错误是远远不够的。一种良好的设计同时还要通过生成一个友好的用户界面来防止出现错误。采用预先进行的方法进行验证可以极大地增强用户对于应用程序的理解。不幸的是,Commons Validator 并没有对此提供支持。假设希望 HTML 文件设置文本域的 maxlength 属性来与验证匹配,或者在文本域之后放上一个百分号(%)来表示要输入百分比的值。通常,这些信息都被硬编写到 HTML 文档中了。如果决定修改 name 属性来支持 75 个字符,而不是 60 个字符,那么需要改动多少地方呢?在很多应用程序中,通常都需要:
◆更新 DDL 来增大数据库列的长度(通过 HibernateDoclet、 hbm.xml 或 Hibernate Annotations)。
◆更新 Commons Validator XML 文件将***值增加到 75。
◆更新所有与这个域有关的 HTML 表单,以修改 maxlength 属性。

更好的方法是使用 Hibernate Validator。验证的定义都被通过注释 添加到了模型层中,同时还有对所包含的验证处理的支持。如果选择充分利用所有的 Hibernate,这个 Validator 就可以在 DAO 和 DBMS 层也提供验证。在下面给出的样例代码中,将使用 reflection 和 JSP 2.0 标签文件多执行一个步骤,从而充分利用注释 为视图层动态生成代码。这可以清除在视图中使用的硬编写的业务逻辑。

dateOfBirth 被注释为 NotNull 和过去的日期。 Hibernate 的 DDL 生成代码对这个列添加了一个非空约束,以及一个要求日期必须是之前日期的检查约束。e-mail 地址也是非空的,必须匹配 e-mail 地址的格式。这会生成一个非空约束,但是不会生成匹配这种格式的检查约束。

public class Contact implements Serializable {  public static final int MAX_FIRST_NAME = 30;  public static final int MAX_MIDDLE_NAME = 1;  public static final int MAX_LAST_NAME = 30;   private String fname;  private String mi;  private String lname;  private Date dateOfBirth;  private String emailAddress;   private Address address;   public Contact() {  this.address = new Address();  }   @Valid  @Embedded  public Address getAddress() {  return address;  }   public void setAddress(Address a) {  if (a == null) {  address = new Address();  } else {  aaddress = a;  }  }   @NotNull  @Length(min = 1, max = MAX_FIRST_NAME)  @Column(name = "fname")  public String getFirstname() {  return fname;  }   public void setFirstname(String fname) {  this.fname = fname;  }   @Length(min = 1, max = MAX_MIDDLE_NAME)  @Column(name = "mi")  public String getMi() {  return mi;  }   public void setMi(String mi) {  this.mi = mi;  }   @NotNull  @Length(min = 1, max = MAX_LAST_NAME)  @Column(name = "lname")  public String getLastname() {  return lname;  }

如果需要,Hibernate DAO 实现也可以使用 Validation Annotations。所需做的是在 hibernate.cfg.xml 文件中指定基于 Hibernate 事件的验证规则。如果真地希望抄近路,您可以只捕获服务或控制器中的 InvalidStateException 异常,并循环遍历 InvalidValue 数组。

"怎么理解Hibernate Validator"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

验证 生成 文件 方法 处理 代码 属性 日期 注释 程序 错误 应用 支持 更新 信息 内容 同时 地址 字符 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技发展 互联网 科技公司 互联网科技小贷 上海致骋互联网科技 苏州大垚互联网科技 中国互联网金融科技基金 安控科技rtu产品工业互联网 以后互联网后是啥科技 武汉健翔互联网络科技有限公司 互联网保险科技创业 浙南科技城互联网大厦建设工程 互联网金融科技名词解释 互联网方面的科技前沿 互联网营销推广黑科技 互联网科技股为什么大涨 风投北京互联网科技 半导体行业属于互联网高科技类吗 深圳互联网科技园地址 安徽九吞吴互联网科技有限公司 恒生互联网科技趋势 科技互联网政务服务 互联网巨头反垄断金融科技 深圳天众互联网科技公司 港股科技和互联网 宜昌元轩互联网科技有限公司 恒生互联网科技指数跳水 深圳市优智互联网科技有限公司 想开互联网科技公司怎么样 恒生科技指数 中概互联网 利用互联网等科技手段
0