2012-11-14 19 views
2

我想在dd/MM/yyyy格式的jsp頁面中顯示來自數據庫的日期。這是我在JavaScript中的代碼。dd/MM/yyyy日期格式在jsp中由scriptlet

$(document).ready(function(){ 
    <% 
     SDateDTO sDTO = (SDateDTO) request.getAttribute("sDTO"); 
    if(null != scholAvailDTO){ 
     System.out.println(scholAvailDTO.getEndDate()); 
    %> 

     var end = <%=scholAvailDTO.getEndDate() %>; 
     $("#endDateId").val(end); 
     <%  
    } 
    %> 

}); 

在控制檯它是未來27/04/2010但JSP是越來越像填充其0.0033582089552238806實際上是日期的劃分結果。任何幫助將不勝感激。謝謝,阿米特

回答

2

如果getEndDate()回報java.util.Date對象,然後,用DateFormat爲獲得格式化字符串,然後包裝成以下引號值:

<%DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");%> 
    var end = "<%=formatter.format(scholAvailDTO.getEndDate()) %>"; 

如果getEndDate()回報java.lang.String然後只需在引號作爲包裝的價值如下:

var end = "<%=scholAvailDTO.getEndDate() %>"; 
+0

看到我的答案 - 我不相信問題是字符串格式,它不會將*視爲字符串*。 (特別是'System.out.println'顯示正確格式的事實表明它將以相同格式呈現到Javascript中。) –

+0

@JonSkeet:在這種情況下,我相信這應該有所幫助,因爲輸出將是字符串類型。沒有? –

+0

不,因爲結果的內容只是字符串數據,而不是*開頭和結尾處帶有雙引號的字符串*。這就是我的觀點:想想瀏覽器所看到的。 OP大概希望'var end =「27/04/2010」;' - 你希望添加那些雙引號? –

2

嗯,是 - 你的Javascript大概會被呈現到瀏覽器爲:

var end = 27/04/2010; 

如果你希望它是一個字符串字面然後你需要自己添加引號:

var end = "<%=scholAvailDTO.getEndDate() %>"; 

請注意,你需要確信本身的價值沒有按」 t裏面有引號或其他不適合JavaScript的值。我懷疑可能會有比上述更好的方法。

+0

是的,我需要添加「」符號。工作感謝.. :) – Amit