Формат Дата с fmt: formatDate JSP

Я пытаюсь отформатировать дату с помощью

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

newsletter - это объект с createdOn свойством java.util.Date.

Когда я вызываю предыдущее предложение, я получаю:

В соответствии с TLD значение атрибута не принимает выражения.

Я импортирую fmt с помощью

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

Кто-нибудь знает, как я могу обойти эту проблему?

Я использую jstl.jar, идущий с tomcat.

В jstl.jar/META-INF/MANIFEST.MF остается:

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

Я использую Apache Tomcat версии 6.0.14

Ответ 1

Попробуйте

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

Ответ 2

Этот парень, похоже, справился с проблемой, извлекая TLD из банки, модифицируя ее, помещая ее в WAR WEB-INF каталог и добавление записи в его web.xml следующим образом:

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

В конце концов, он переключился на объявление 1.1:

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

Ответ 3

Я столкнулся с той же проблемой.

Я изменил <% @taglib prefix = "fmt" uri = "http://java.sun.com/jstl/ fmt" % > в <% @taglib prefix = "fmt" uri = "http://java.sun.com/jstl/ fmt_rt" % > и это сработало для меня!

Ответ 4

Вы уверены, что не используете версии тегов lib? Можно ли увидеть выражение об импорте библиотеки?

Я думаю, lucus на что-то, в соответствии с этим FAQ на JavaRanch, это объявление JSTL 1.0. Возможно, вы захотите обновить до версии 1.1.

Какая ваша среда, сервер приложений и версия?

Ответ 5

Используете ли вы JSTL 1.0 или 1.1? formatDate в 1.1 должен принимать выражения.

Ответ 6

По-видимому, мне понадобилось 1.1, но мне пришлось изменить инструкции импорта библиотеки для c и fmt.
Теперь это работает. Спасибо за помощь и извините за путаницу.

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

Ответ 7

Это просто сработало для меня, добавив "_rt" в URL-адрес taglib следующим образом:

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

Я нашел его в этой статье

получайте удовольствие!

Ответ 8

Используете ли вы тегlib fmt-1_0-rt.tld или fmt-1_0.tld.

Разница заключается в настройках rtexprvalue

В одном, это ложь, в другом это верно.

Ответ 9

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

работает для меня.