Struts 2 Hibernate校验教程

Struts 2 Hibernate校验例题

Hibernate校验器框架遵循DRY(不自我重复原则)。使用hibernate校验器,你需要在域对象(domain object)使用注释进行指定限制。一旦你指定了限制,那么就可以在不复制的情况下,在应用的所有层中使用它。

 

Hibernate校验器来自基础内建限制,如:@Length(min=, max=),@Max(value=),@Min(value=),@NotNull,@NotEmpty等等。你也可以简单的创建自定义的限制。

 

lib路基中需要的lib和上一篇的一样。

 

域对象(domain object)user,使用了校验限制如下:

 

这里除了JPA注释意外,还有Hibernate校验限制。

 

@NotEmpty 约束检查是否为空。

@Length(min=6, max=10) 约束检查是否在最大值和最小值范围之内。

 

校验信息是由插件自动声称的,我们也可以使用message属性来重写默认的信息。例如下面,为gender和country属性指定自定义信息。

 

在UserAction类中用@Valid指定需要校验的域对象(domain object)。

 

自从我们使用Hibernate插件,就需要继承hibernate-default包。在hibernate-default包中包含三个拦截器(interceptor)栈。

  • basicStackHibernate : Struts2 basicStack + Hibernate session和transaction性能。
  • defaultStackHibernate : Struts 2 defaultStack(没有校验) + Hibernate校验,session和transaction性能。
  • defaultStackHibernateStrutsValidation:Struts 2 defaultStack(有校验) + basicStackHibernate。

struts.xml文件如下:

 

在默认情况下,使用defaultStackHibernate拦截器(interceptor)。在addUser动作(action)中,我们使用默认的拦截器(interceptor)进行校验,在listUser动作(action)中,使用backStackHibernate,因为不需要校验。

 

在register.jsp页面中,用key属性代替name属性给属性赋值。这是为默认校验所生成的。

 

key的值可以在UserAction.properties文件指定,这个文件也得保存和UserAction.java文件同一个目录。

 

在默认情况下,生成用区域标签为前缀的校验信息。

 

当没有输入任何值而直接提交,那么执行画面和下图相似。

 

这里的校验信息是为校验User Name,Password和About而生成的。这是因为在UserAction.properties文件里指定了key值。如果只想校验,不在属性文件里指定key值,那么Gender和Country就是只显示自定义的错误信息而不显示区域标签。

 

源代码:下载

源代码 + lib:下载

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值