2008-11-11 2 views
33

Я пытаюсь форматировать дату с:Формат даты с FMT: FormatDate JSP

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

бюллетень является объектом с 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

+8

Форматирование вашей даты как «MM/dd/yyyy» является злым :) Вместо этого используйте MMM dd yyyy, где MMM - это название месяца. В противном случае дата, заявленная 1/6/2009, оставит вашу потенциальную аудиторию, думая, что она была опубликована 1 июня. – 2008-11-11 16:32:00

+0

Знаете ли вы, какую версию для Tomcat вы используете? – sblundy 2008-11-11 16:47:50

+0

Хорошо, я в замешательстве. Вы сделали чистую сборку, выключение, удалили% TOMCAT_HOME% \ work, перезапустили и перераспределили, чтобы убедиться, что ничего не происходит? – sblundy 2008-11-11 16:52:27

ответ

1

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

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

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

+0

добавлено в главный вопрос – 2008-11-11 16:35:25

+0

Знаете ли вы, какую версию вы используете? – sblundy 2008-11-11 16:38:32

41

Попробуйте

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

Вы используете fmt-1_0-rt.tld или fmt-1_0.tld TagLib.

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

В одном, это неверно, в другом, это правда.

1

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

1

Видимо, мне нужно 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" %> 
5

This guy, похоже, работал вокруг проблемы путем выделения TLD из кувшина, изменяя его, поместив его в каталог 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"/> 
1

Он просто работал для меня, добавляя "_rt" в TagLib URL, как это:

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

Я нашел его в this article

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

2

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

I Изменено <% префикс @ TagLib = "FMT" Uri = "http://java.sun.com/jstl/ FMT" %> до <% префиксом @ TagLib = "FMT" URI = "http://java.sun.com/jstl/ fmt_rt"%> и это сработало для меня!

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^