web-dev-qa-db-fra.com

Formater la date avec fmt: formatDate JSP

J'essaie de formater une date avec:

<fmt:formatDate value="${newsletter.createdOn}" pattern="MM/dd/yyyy"/>

newsletter est un objet avec une propriété createdOn qui est Java.util.Date.

Lorsque j'invoque la phrase précédente, j'obtiens:

Selon le TLD, la valeur d'attribut n'accepte pas les expressions.

J'importe fmt avec

<%@ taglib prefix="fmt" uri="http://Java.Sun.com/jstl/fmt" %>

Quelqu'un sait-il comment contourner ce problème?

J'utilise le jstl.jar fourni avec Tomcat.

Sous jstl.jar/META-INF/MANIFEST.MF reste:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3 
Created-By: 1.4.2-b28 (Sun Microsystems Inc.)
Specification-Title: JavaServer Pages Standard Tag Library (JSTL)
Specification-Version: 1.1
Implementation-Title: JavaServer Pages Standard Tag Library API Refere
 nce Implementation
Implementation-Version: 1.1.0-D13
Implementation-Vendor: Sun Microsystems, Inc.
Implementation-Vendor-Id: com.Sun
Extension-Name: javax.servlet.jsp.jstl

J'utilise Apache Tomcat version 6.0.14

33
Sergio del Amo

Essayer

<%@ taglib prefix="fmt" uri="http://Java.Sun.com/jsp/jstl/fmt" %>
42
lucas

Ce type semble avoir contourné le problème en extrayant le TLD du pot, en le modifiant, en le plaçant dans le répertoire WEB-INF de WAR et en ajoutant une entrée à son web.xml comme ça:

<jsp-config>
 <taglib>
  <taglib-uri>http://Java.Sun.com/jstl/fmt</taglib-uri>
  <taglib-location>/WEB-INF/fmt.tld</taglib-location>
 </taglib>
</jsp-config>

Finalement, il est passé à la déclaration 1.1:

<%@ taglib uri="http://Java.Sun.com/jsp/jstl/fmt" prefix="fmt"/>
5
sblundy

J'ai rencontré le même problème.

J'ai changé <% @ taglib prefix = "fmt" uri = "http://Java.Sun.com/jstl/fmt"%> en <% @ taglib prefix = "fmt" uri = " http://Java.Sun.com/jstl/fmt_rt "%> et cela a fonctionné pour moi!

2
Gary

Êtes-vous sûr de ne pas utiliser les versions d'exécution de la balise lib? Pouvons-nous voir l'instruction d'importation de bibliothèque?

Je pense que lucus est sur quelque chose, selon cela FAQ sur JavaRanch, c'est une déclaration JSTL 1.0. Vous voudrez peut-être mettre à jour vers 1.1.

Quels sont votre environnement, votre serveur d'applications et votre version?

1
sblundy

Utilisez-vous JSTL 1.0 ou 1.1? formatDate en 1.1 devrait accepter les expressions.

1
Michael Glenn

Cela a juste fonctionné pour moi en ajoutant "_rt" à l'URL taglib comme ceci:

<%@ taglib prefix="fmt" uri="http://Java.Sun.com/jsp/jstl/fmt_rt" %>

Je l'ai trouvé dans cet article

s'amuser!

1
oli

Apparemment, j'avais besoin de 1.1, mais j'ai dû changer les instructions d'importation de bibliothèque pour c et fmt.
Maintenant ça marche. Merci pour l'aide et désolé pour la confusion.

<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://Java.Sun.com/jsp/jstl/fmt" %>
1
Sergio del Amo

Utilisez-vous le fmt-1_0-rt.tld ou fmt-1_0.tld taglib.

La différence réside dans les paramètres de rtexprvalue

Dans l'un, c'est faux, dans l'autre c'est vrai.

0
toolkit
<%@ taglib uri="http://Java.Sun.com/jsp/jstl/fmt" prefix='fmt'%>

travaille pour moi.

0
sumit