2011-06-03 13 views
5

Tratando de llenar y formato de un valor de fecha dentro de un campo de entrada de texto. ¿Qué estoy haciendo mal aquí?
JSTL formato de etiqueta

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

Respuesta

13

El JSTL fmt taglib existe <fmt:xxx> de etiquetas, no ${fmt:xxx} funciones.

Fix en consecuencia:

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

(tenga en cuenta que los días han de ser representados como dd, no mm y que los años han de ser representados como yyyy, no YYYY, consulta SimpleDateFormat javadoc para todos los patrones válidos)

Si su IDE se mueve bruscamente sobre las etiquetas anidadas (que deben funcionar perfectamente bien sin embargo) o obtiene picazón, haga uso del atributo var para que su HTML/XML termine bien formado.

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

Si realmente les gusta tener una función ${fmt:formatDate()}, que tendría que homegrow usted mismo. Puede encontrar un ejemplo de kickoff en this answer.


actualización como resulta por los comentarios, la ${status.value} es en realidad un String en el formato yyyy-MM-dd. Si la fijación que sea un fullworthy Date no es una opción, entonces sería necesario analizar en un Date primero con ayuda de <fmt:parseDate> antes de dársela a <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

Hola BalusC, este valor no funcionó = "" – t0mcat

+0

¿Qué ocurre en su lugar? ¿Has declarado el taglib encima de JSP? ¿Arreglaste 'YYYY' para ser' yyyy'? Tenga en cuenta que actualicé la respuesta con una alternativa. – BalusC

+0

fmt taglib faltaba. Se corrigió e intenté ejecutar. Esto es lo que tengo: Código de estado 500 Excepción Intento javax.servlet.jsp.el.ELException clase Tipo mensaje a convertir la serie "2002-04-15" para escribir "java.util.Date", pero no hay PropertyEditor para ese tipo de javax.servlet.jsp.el.ELException Excepción: Intento de convertir la serie "2002-04-15" para escribir "java.util.Date", pero no hay PropertyEditor para ese tipo – t0mcat