JSTL fmt
taglib istnieje od <fmt:xxx>
znaczników, nie ${fmt:xxx}
funkcji.
Fix to odpowiednio:
<input type="text" name="${status.expression}"
value="<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" />" />
/>
(zauważ, że dzień mają być reprezentowane dd
, nie mm
a rok mają być reprezentowane yyyy
, nie YYYY
patrz również SimpleDateFormat
javadoc dla wszystkich prawidłowych wzorców)
Jeśli Twój IDE szarpnie o zagnieżdżonych tagach (który powinien działać bez zarzutu) lub z niego czerpiesz, użyj atrybutu var
, aby Twój HTML/XML się skończył dobrze uformowany.
<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" var="statusDate" />
<input type="text" name="${status.expression}" value="${statusDate}" />
Jeśli naprawdę lubią mieć ${fmt:formatDate()}
funkcję, trzeba by go homegrow siebie. Możesz znaleźć przykład kickoff w this answer.
Aktualizacja jak się okazuje za uwag ${status.value}
jest rzeczywiście String
w formacie yyyy-MM-dd
. Jeśli opcja ta nie jest pełna, należy najpierw przeanalizować ją w postaci Date
przy pomocy <fmt:parseDate>
przed jej przesłaniem do <fmt:formatDate>
.
<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}" />
Hi BalusC, wartość ta nie zrobił praca = " " –
t0mcat
Co się dzieje, a nie? Czy zadeklarowałeś taglib na górze strony JSP? Czy naprawiłeś "YYYY" jako "yyyy"? Zauważ, że zaktualizowałem odpowiedź za pomocą alternatywy. – BalusC
Brak taglib fmt. Naprawiono i próbowałem działać. Oto co otrzymałem: Kod statusu 500 Wyjątek Typ klasy javax.servlet.jsp.el.ELException Wiadomość Próba przekonwertowania ciągu "2002-04-15" na typ "java.util.Date", ale nie ma PropertyEditor dla tego typu wyjątek Wyjątek javax.servlet.jsp.el.ELException: Próba przekonwertowania ciągu "2002-04-15" na typ "java.util.Date", ale nie ma PropertyEditor dla tego typu – t0mcat