2010-04-12 5 views
10

J'ai une boucle qui passe par toutes les nouvelles que nous avons sur notre site. L'un des champs est la date ${newsitem.value['Date']}, donnée en milllisecondes. J'aimerais afficher cette date au format mois/jour/année sur la page Web. Je pensais que l'étiquette de format JSTL, <fmt:formatDate>, aiderait, mais je n'ai pas réussi. Savez-vous comment le faire?Comment mettre en forme la date dans JSTL

<cms:contentaccess var="newsitem" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
// display date here   
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 

Répondre

36

Oui la balise JSTL formatDate devrait faire le travail en combinaison avec le changement de la valeur Timestamp dans un objet date (qui est nécessaire pour contourner l'exception mentionnée dans votre commentaire).

Assurez-vous que vous avez correctement défini le préfixe fmt dans les déclarations JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 

rendu la sortie, convertir l'horodatage à une valeur de première date. J'utilise yyyy-MM-dd comme format pattern, la balise dateFormat prend également en charge other formatting options.

<cms:contentaccess var="newsitem" /> 
<jsp:useBean id="newsDate" class="java.util.Date" /> 
<jsp:setProperty name="newsDate" property="time" value="${newsitem.value['Date']}" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
<fmt:formatDate pattern="yyyy-MM-dd" value="${newsDate}" /> 
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 
+0

J'ai essayé plus tôt, mais il jette cette erreur: « Impossible de convertir 1270738800000 de type classe org.opencms.jsp.util.CmsJspContentAccessValueWrapper à la classe java.util.Date » –

+1

L'URI taglib indique un 10 version de JSTL d'un an. Veuillez mettre à jour. – BalusC

+0

merci de repérer l'ancien URI, je l'ai mis à jour comme vous l'avez suggéré – BenM

Questions connexes