特性
- 日期转换通过java代码控制,提供编译检查
- 与My97DatePicker
集成,一个非常强大的日期控件
问题
通常我们的数据类型转换只需对string => date需要特殊处理,而string => int,string => float等直接通过struts等自动转换就行了.
而为了一个日期的转换我们需要写一个配置文件,我们还不如将其放在java代码中,还可以提供 编译检查 .
解决
我们通过在hibernate的entity类中增加了日期的代理方法,以下为转换birthDate示例
public static final String FORMAT_BIRTH_DATE = "yyyy-MM-dd";
@Transient
public String getBirthDateString() {
return convertDate2String(getBirthDate(), FORMAT_BIRTH_DATE); }
public void setBirthDateString(String value) {
setBirthDate(convertString2Date(value, FORMAT_BIRTH_DATE)); }
@Column(name = "birth_date", unique = false, nullable = false, insertable = true, updatable = true, length = 19)
public java.sql.Timestamp getBirthDate() {
return this.birthDate;
}
public void setBirthDate(java.sql.Timestamp value) {
this.birthDate = value;
}
然后再在我们的jsp页面也以 birthDateString 为key,而不直接使用 birthDate ,这样实际的转换就作为我们的java代码来控制
<!--
onclick部分为与My97DatePicker集成的部分,可以直接引用我们的FORMAT_BIRTH_DATE常量,提供编译检查.
-->
<s:textfield key="birthDateString" onclick="<%="WdatePicker({dateFmt:'"+Blog.FORMAT_BIRTH_DATE+"'})"%>"></s:textfield>