//Orders.java  实体类
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
private Integer orderId;
private String name;
private String proName;
private Double orderCount;
private Date orderDate;// 时间
        public String getOrderDate() {
                  //格式化
return df.format(this.orderDate);
} public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}
        //其他get set....//action
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List orderlist=ordersDao.findAll();
request.setAttribute("list", orderlist);
return mapping.findForward("list");
}                             <c:forEach items="${requestScope.list}" var="order">
<tr>
<td>
${order.orderId}
</td>
<td>
${order.name}
</td>
<td>
${order.proName}
</td>
<td>
${order.orderCount}
</td>
<td>
${order.orderDate}
</td>


</tr>
</c:forEach>
java.lang.ClassCastException: java.lang.String
at org.hibernate.type.TimestampType.isEqual(TimestampType.java:77)
数据库中orderDate的格式“2006-2-5 0:00:00”我想要输出在页面的格式“2006-2-5”,所以在实体类中就转了格式,运行就出异常了。。怎么才能实现我的功能呢

解决方案 »

  1.   

    看下你的hibernate配置文件怎么映射orderDate字段的
      

  2.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    Date d = new Date();
    System.out.println(d); //Sat Oct 03 12:37:18 CST 2009
    System.out.println(df.format(d)); //2009-10-03
    }
    只要你传对参数就没问题~·
      

  3.   

    <property name="orderDate" type="java.util.Date" unique="false" optimistic-lock="true" lazy="false" generated="never">
      <column name="orderDate" length="23" not-null="true" /> 
      </property>
      

  4.   

    你这样做肯定是错的啊!你的字段申明的是日期类型的可是你RETURN的是STRING类型啊!所以就会报类型转化异常啊!
    1.要不你映射的时候就把  orderDate   变成String 的
    2.我建议你再加个字段,但是不要去HBM文件里去写他!
    Private String orderdate2;
       public String getOrderDate2() {
            return df.format(this.orderDate);
        }
    你在页面里面的PROPERTY 就写ORDERDATE
      

  5.   

    你的那个return有问题。你返回一个string当然就错了
      

  6.   

    type="java.util.Date"
    你这里是date
    但是如果你把bean改成返回date不知道能不能识别。我没试过你可以试下。好了回来说句
      

  7.   

    如果你只是做单单一个输出。数据库没必要用date类型。都改成string就没问题了
      

  8.   

    用jstl 时间标签 自己看看
      

  9.   


    日后还是要添加数据的,所以要date类型啊