浏览 6972 次
锁定老帖子 主题:formbean问题?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-07-05
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-07-05
其实我是愿意是想在将显示层的日期,通过formbean获取后,将formbean转化成一个vo(或po),然后通过hibernate写入oracle数据库,我的数据库中对应的字段是日期型的,所以我的vo(或po)对应的属性也是日期型(如果是String的话,相应的hbm.xml如何来写)。可否给个例子,对应于日期的输入,我怎么通过hibernate构造一个Dao写入数据库。
|
|
返回顶楼 | |
发表时间:2004-07-05
formbean如果是你自己写的话,你可以定义成日期型,如果是动态了也可以指定为日期型,不过我不建议这么用,除非确保转化无问题。
只要你愿意你可以把formbean用作vo/po。在hibernate也可以把日期型当作字符串使用,同样注意有转化陷阱。 |
|
返回顶楼 | |
发表时间:2004-07-07
我个人看法是:在formbean设置成String,然后在你的control那层进行日期转换,然后再传给应用层.
|
|
返回顶楼 | |
发表时间:2004-07-07
是这样?我有点偷懒。我将formbean中数据在action中收到后,通过UtilProperties.copyProperties方法,将formbean的值付给vo(或po)
,可是我的po的值属性如果设置成Date型,我无法将formbean中的String类型的日期使用UtilProperties.copyProperties进行赋值,楼上的老兄倒是一种方法,可是我的表字段很多(formbean中的内容很多),我不能一个一个的赋值吧,但是我的po如果时String型的话,我的数据库又是Date型的,不知这里怎么控制。有类型转换的陷阱指什么? |
|
返回顶楼 | |
发表时间:2004-07-07
Struts的formbean的setter和getter是用BeanUtils来实现的,显示formbean的过程实际上是将formbean中的属性全部转换成String,反过来也是一样.这里面就会涉及到convert的问题,BeanUtils支持String,BigDecimal,Boolean,Byte,char,Float,Interger,Double,Short,Long这些类型的相互转换,而其他类型则throw IllegalAccessException.
|
|
返回顶楼 | |
发表时间:2004-07-07
iceboy2189 写道 是这样?我有点偷懒。我将formbean中数据在action中收到后,通过UtilProperties.copyProperties方法,将formbean的值付给vo(或po)
能把UtilProperties.copyProperties方法贴出来吗?我想知道将vo->po有没有什么有效的方法. |
|
返回顶楼 | |
发表时间:2004-07-08
查看了struts的源码发现也只是支持beanutil中所支持的那几种类型。
String,BigDecimal,Boolean,Byte,char,Float,Interger,Double,Short,Long。 使用beanutil包中的copy属性。 org.apache.commons.beanutils.PropertyUtils.copyProperties( 目标对象, 源对象); 属性必须一致。 |
|
返回顶楼 | |
发表时间:2004-07-08
我觉得应该在vo里面加一层代理,比如
public String getDateDisplay(){return getDate().toString();} public setDateDisplay(String date){setDate(Date.valueOf(date));} formbena里只要对应 public String getDateDisplay().. public setDateDisplay(String date)... 就可以通过beanutils来copy了 |
|
返回顶楼 | |