2011-06-03 20 views
5

Próba wypełnienia i sformatowania wartości daty w polu tekstowym INPUT. Co ja tu robię źle?
Znacznik formatu JSTL

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

Odpowiedz

13

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}" /> 
+0

Hi BalusC, wartość ta nie zrobił praca = "" – t0mcat

+0

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

+0

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