2011-06-03 18 views
5

INPUT metin alanı içinde bir tarih değeri doldurmaya ve biçimlendirmeye çalışılıyor. Burada neyi yanlış yapıyorum?
JSTL biçim etiketi

<spring:bind path="salesData.weekEndDate"> 
<input type="text" name="${status.expression}" 
value="${fmt:formateDate pattern='MM/mm/YYYY' status.value}" 
/> 

cevap

13

JSTL fmt taglib<fmt:xxx> etiketleri değil ${fmt:xxx} fonksiyonlar arasında bulunmaktadır. buna göre

Fix it:

<input type="text" name="${status.expression}" 
    value="<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" />" /> 
/> 

(gün dd değil mm olarak temsil edilmesi olduğu ve yıllar tüm geçerli kalıpları için de SimpleDateFormat javadoc bkz yyyy değil YYYY olarak temsil edilecek unutmayın) IDE (ancak mükemmel düzgün çalışmalıdır) iç içe etiketler hakkında gerizekalı ya ondan kaşıntı alırsanız HTML/XML biter böylece

, var öznitelik faydalanmak iyi oluşmuş. Eğer gerçekten bir ${fmt:formatDate()} tesiri olduğu isterseniz

<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" var="statusDate" /> 
<input type="text" name="${status.expression}" value="${statusDate}" /> 

, bunu kendiniz homegrow gerekirdi. Bir başlangıç ​​örneğini this answer'da bulabilirsiniz.


Güncelleme olarak ${status.value} aslında formatında yyyy-MM-dd bir String olduğunu, yorumlar başına çıkıyor. Tam bir Date olarak sabitlemek bir seçenek değilse, o zaman <fmt:formatDate> beslemeden önce <fmt:parseDate> yardımı ile bir Date içine ayrıştırmanız gerekir.

<fmt:parseDate pattern="yyyy-MM-dd" value="${status.value}" var="parsedStatusDate" /> 
<fmt:formatDate pattern="MM/dd/yyyy" value="${parsedStatusDate}" var="formattedStatusDate" /> 
<input type="text" name="${status.expression}" value="${formattedStatusDate}" /> 
+0

Merhaba BalusC Bu hiç bir çalışma value = " t0mcat

+0

yerine ne olur "/ $ {status.value}>"? Taglib'i JSP'nin içinde ilan ettiniz mi? YYYY'yi "yyyy" olarak tamir ettin mi? Cevabı bir alternatifle güncellediğimi unutmayın. – BalusC

+0

fmt taglib eksik. Düzeltdi ve koşmaya çalıştı. Bu, sahip olduğum şey: Durum javax.servlet.jsp.el.ELException Özel Durum Türü "java.util.Date" için "2002-04-15" dizesini dönüştürme girişiminde bulunuldu, ancak PropertyEditor yok Bu tür için Exception javax.servlet.jsp.el.ELException: "java.util.Date" türüne "2002-04-15" dizesini dönüştürme girişiminde bulunuldu, ancak bu tür için PropertyEditor yok – t0mcat