描述Hibernate propertyPath

开发 后端
本文中Hibernate propertyPath是惟一需要的属性。size、 maxlength 和 required 都可以忽略。objectPath var 被设置为在 Hibernate propertyPath 中引用的属性的父对象。

Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate propertyPath,包括介绍装饰CSS代码等方面。

本文中Hibernate propertyPath是惟一需要的属性。size、 maxlength 和 required 都可以忽略。objectPath var 被设置为在 Hibernate propertyPath 中引用的属性的父对象。因此,如果 Hibernate propertyPath 是 customer.contact.fax.number, 那么 objectPath 就应该被设置为 customer.contact.fax。我们现在就使用 Spring 的 bind 标签绑定到了包含属性的对象上。这会将对象变量设置成对包含属性的实例的引用。接下来,检查这个标签的用户是否已经指定他/她们是否希望属性是必须的。允许表单开发人员覆盖从注释中返回的值是非常重要的,因为有时他/她们希望让控制器为所需要的域设置缺省值,而用户可能并不希望为这个域提供值。如果表单开发人员没有为 required 指定值,那么就可以调用这个表单 TLD 的 required 函数。这个函数调用了在 TLD 文件中映射的方法。这个方法简单地检查 @NotNull 注释;如果它发现某个属性具有这个注释,就将 labelClass 变量设置为必须的。可以类似地确定正确的 maxlength 以及这个域是否是一个 Date。

接下来使用 Spring 来绑定到 Hibernate propertyPath 上,而不是像前面一样只绑定到包含这个属性的对象上。这允许在生成 label 和 input HTML 标签时使用 status.expression 和 status.value。 input 标签也可以使用一个大小 maxlength 以及适当的类来生成。如果前面已经确定属性是一个 Date,现在就可以添加 JavaScript 日历了。(可以在 参考资料 一节找到一个很好的日历组件的链接)。注意根据需要链接属性、输入 ID 和图像 ID 的标签是多么简单。)这个 JavaScript 日历需要一个图像 ID 来匹配输入域,其后缀是 _button。

使用CSS,就可以对必须的域进行一下装饰 —— 例如,让它们以红色显示、在文本边上显示一个星号,或者使用一个背景图像来装饰它。

对必须域进行装饰的CSS代码

  1. label.required {  
  2. color: black;  
  3. background-image: url( /images/icons/flag_red.png );  
  4. background-position: left;  
  5. background-repeat: no-repeat;  
  6. }  
  7. label.required:after {  
  8. content: '*';  
  9. }  
  10. label.optional {  
  11. color: black;  
  12. }  

日期输入域自动会在右边放上一个 JavaScript 日历图标。对所有的文本域设置正确的 maxlength 属性可以防止用户输入太多文本所引起的错误。可以扩展 text 标签来为输入域类设置其他的数据类型。可以修改 text 标签使用 HTML,而不是 XHTML(如果希望这样)。可以不太费力地获得具有正确语义的 HTML 表单,而且不需学习基于组件的框架知识,就可以利用基于组件的 Web 框架的优点。

【编辑推荐】

  1. 剖析Hibernate Extensions
  2. 介绍Hibernate Iterator方法
  3. Hibernate Session缓存经验总结
  4. 简单介绍Hibernate配置Proxool
  5. 浅谈Hibernate outer-join参数
责任编辑:佚名 来源: IT168
相关推荐

2009-09-23 17:34:18

Hibernate映射

2009-09-22 12:45:00

Hibernate性能

2009-09-21 16:30:20

Hibernate S

2009-09-28 15:43:42

Hibernate O

2009-09-23 10:58:32

Hibernate T

2009-09-22 17:41:07

Hibernate性能

2009-09-29 16:48:42

Hibernate J

2009-09-22 11:16:27

Hibernate经验

2009-09-27 13:00:56

Hibernate S

2009-09-23 10:23:03

Hibernate检查

2009-09-29 10:57:25

设置Hibernate

2009-09-24 13:17:37

Hibernate类库

2009-09-21 13:56:09

Hibernate3.

2009-09-21 17:46:34

Hibernate持久

2009-09-24 16:19:53

Hibernate应用

2009-09-22 15:04:37

Hibernate M

2009-09-25 14:28:40

Hibernate S

2009-09-27 17:37:32

Hibernate拦截

2009-09-25 10:33:25

Hibernate单元

2009-09-27 09:55:38

Hibernate持久
点赞
收藏

51CTO技术栈公众号