Ответ 1
Попробуйте
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
Я пытаюсь отформатировать дату с помощью
<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
Попробуйте
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
Этот парень, похоже, справился с проблемой, извлекая 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"/>
Я столкнулся с той же проблемой.
Я изменил <% @taglib prefix = "fmt" uri = "http://java.sun.com/jstl/ fmt" % > в <% @taglib prefix = "fmt" uri = "http://java.sun.com/jstl/ fmt_rt" % > и это сработало для меня!
Вы уверены, что не используете версии тегов lib? Можно ли увидеть выражение об импорте библиотеки?
Я думаю, lucus на что-то, в соответствии с этим FAQ на JavaRanch, это объявление JSTL 1.0. Возможно, вы захотите обновить до версии 1.1.
Какая ваша среда, сервер приложений и версия?
Используете ли вы JSTL 1.0 или 1.1? formatDate в 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" %>
Это просто сработало для меня, добавив "_rt" в URL-адрес taglib следующим образом:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt_rt" %>
Я нашел его в этой статье
получайте удовольствие!
Используете ли вы тегlib fmt-1_0-rt.tld
или fmt-1_0.tld
.
Разница заключается в настройках rtexprvalue
В одном, это ложь, в другом это верно.
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix='fmt'%>
работает для меня.