编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 给我留言 | 
          ★★★
【字体:
进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:网络    点击数:    更新时间:2006-12-27    

我是采用hibernate+struts的结构做应用。-Java技术

来源:WEB开发资源联盟(http://cnpoint.com/)
作者:point
原文:我是采用hibernate+struts的结构做应用。(http://cnpoint.com/framwwork/2006/1105/content_4550.htm)

我是采用hibernate+struts的结构做应用。
dto用于在表示层,业务发和数据层传输入数据的。在数据层我的dto属性的值要copy到vo中,再把vo传给hibernate进行持久化。
现在就是说数据的类型有些是不同的,但是名字是想同的。我的dto本来打算全部用string型。
但 是对于dto中如果是 String date,而vo中是java.sql.Date date ,那么如果dto 中date有正确的值,如"2005-11-2",他是可以转变过去的,但是如果他是空值,则不行,然后我在测试的时候修改dto中的date为 java.sql.Date,如果他是对的日期值,就是有值,它是对的,可是它为null时,则会报: org.apache.commons.beanutils.ConversionException: No value specified

        at org.apache.commons.beanutils.converters.SqlDateConverter.convert(SqlDateConverter.java:103)

        at org.apache.commons.beanutils.BeanUtilsBean.copyProperty(BeanUtilsBean.java:444)

        at org.apache.commons.beanutils.BeanUtilsBean.copyProperties(BeanUtilsBean.java:261)

        at org.apache.commons.beanutils.BeanUtils.copyProperties(BeanUtils.java:114)

        at com.fireeagle.test.TestCopy.main(TestCopy.java:18)


No value specified  没有值被指定,但是按照业务来说,有些日期值是不要的,也就是就为空null,
那我要怎样解决这个问题,我不想回到set(get())那种形式了, 问题解决:
      读了他的源程序,发现日期java.sql.date主要是用org.apache.commons.beanutils.converters.SqlDateConverter类进行转的:
修改下面的代码就可以了
  public SqlDateConverter(Object defaultValue) {

        this.defaultValue = defaultValue;
        this.useDefault = true;  //原本为false;

    }

public SqlDateConverter() {

        this.defaultValue = null;
        this.useDefault = true;   //原本为false;   我也不记是那个是false了,反正修改为true就可以了


    }


   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营