2013-10-02 17 views
0

我想使用DateFormat。與DateFormat和JavaBean錯誤

如果我寫這篇文章在JSP頁面中我沒有問題

DateFormat df = new SimpleDateFormat("dd"); 
String print= df.format(new Date()); 
out.print(print); 

如果我嘗試在一個JavaBean

public class Date { 
String printDate="";  

    public String DataAttualeFormatoItaliano(){ 

     DateFormat df = new SimpleDateFormat("dd"); 
     printDate=df.format(new Date()); 
       return printDate; 

    } 

} 

,並在我的jsp頁面寫這個,我使用JavaBean的這種方式

<jsp:useBean id="Data" class="Jeans.Date"/> 
<% 
out.print(Data.DataAttualeFormatoItaliano()); 
%> 

我得到這個錯誤

org.apache.jasper.JasperException: java.lang.IllegalArgumentException: Cannot format given Object as a Date 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

有人知道爲什麼嗎? 謝謝

+1

幾個鏈接,你應該閱讀:[爲Java編程語言代碼規範(http://www.oracle.com/technetwork/java/javase/documentation /codeconvtoc-136057.html)和[如何避免JSP文件中的Java代碼?](http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files) – sp00m

回答

1

你的類(Date)與java.util.Date具有相同的名稱,所以你試圖將你自己的類的一個對象解析成一個String ;-)。你必須解析java.util.Date對象,而不是

DateFormat df = new SimpleDateFormat("dd"); 
printDate=df.format(new java.util.Date()); 
return printDate; 
+0

(或將您的自定義日期類重命名爲MyDate) – sp00m

+0

哦,愚蠢的錯誤。 謝謝大家 – MDP