2008-11-11 5 views
33

나는 함께 데이트를 포맷하려고 :형식 날짜 : formatDate JSP

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

뉴스 레터 java.util.DatecreatedOn 속성을 개체입니다. 내가 얻을 이전 문장 호출 할 때

다음 TLD에 따르면

를, 속성 값은 표현식을 허용하지 않습니다.

내가 함께 FMT를 수입하고

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

나는이 문제를 해결하는 방법을 누구나 알고 있나요?

바람둥이와 함께 오는 jstl.jar를 사용하고 있습니다. 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 

6.0.14

+8

날짜를 "MM/dd/yyyy"로 지정하는 것은 위험합니다. MMM dd yyyy를 대신 사용하십시오. 여기서 MMM은 해당 월의 이름입니다. 그렇지 않으면 2009 년 1 월 6 일을 말한 날짜는 잠재 고객이 6 월 1 일에 게시되었다고 생각한다고 남겨 둡니다. –

+0

실행중인 Tomcat의 버전을 알고 있습니까? – sblundy

+0

그래, 혼란스러워. 깨끗한 빌드, 종료, % TOMCAT_HOME % \ work 삭제, 재시작 및 재배포를 해본 적이 있습니까? – sblundy

답변

1

당신은 당신의 런타임 버전을 사용하지 확실 태그 lib? 도서관 수입 신고서를 보시겠습니까?

저는 lucus이 JavaRanch의 FAQ에 따르면, 뭔가 있다고 생각합니다. JSTL 1.0 선언입니다. 1.1로 업데이트 할 수 있습니다.

환경, 앱 서버 및 버전은 무엇입니까?

+0

이 주 질문에 추가되었습니다. –

+0

사용중인 버전을 알고 있습니까? – sblundy

+0

이 주 질문을 업데이트했습니다. –

41

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

이 간단한 대답으로 문제를 해결했습니다. 감사! –

+0

차이점은 uri의 .../jsp/... 부분입니다. –

0

당신이 fmt-1_0-rt.tld 또는 fmt-1_0.tld 태그 라이브러리를 사용하고보십시오.

의 차이는 하나에서 rtexprvalue

에 대한 설정이다, 이것은 다른에서 사실이다, false입니다.

+0

아무 생각없이, 어떻게 알 수 있습니까? 이 태그가 정의 된 jstl.jar을 사용하고 있습니다. –

1

JSTL 1.0 또는 1.1을 사용하고 있습니까? 1.1의 formatDate는 표현식을 허용해야합니다.

+0

jstl 1.1 –

1

분명히, 나는 1.1이 필요했지만 나는 c 및 fmt 모두에 대해 라이브러리 가져 오기 명령문을 변경해야했습니다.
이제 작동합니다. 도와 줘서 고마워. 혼란에 빠져서 미안해.

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

This guy

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
는, 그것을 수정, 항아리에서 TLD를 추출 WAR의 WEB-INF 디렉토리에 배치하고,이 같은 그의 web.xml에 항목을 추가하여 문제를 해결 일한 것 같다

결국 그는 1로 전환했습니다.(1 개) 선언 : 그것은 단지 다음과 같이 URL을 태그 라이브러리하는 "_rt"를 추가하여 나를 위해 일한

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

문제가 해결 된 것 같아요. 당신의 도움을 주셔서 감사합니다. 너 락! –

+2

사실, taglib URI를 수정하는 것만으로 충분했습니다. 느슨한 TLD로 번거로운 작업을하는 것은 큰 신화이며 실제로 수행되지 않아야합니다. – BalusC

+0

"This guy"링크가 깨졌습니다. –

1

가 :

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

내가

this article에서 발견 재미를!

+1

JSTL 버전이 오래되었습니다. JSTL을 업그레이드하십시오. [우리 JSTL wiki 페이지] (http://stackoverflow.com/tags/jstl/info)를 읽으십시오. – BalusC

2

동일한 문제가 발생했습니다.

난 % URI = " http://java.sun.com/jstl/ FMT"> <퍼센트 @ 태그 라이브러리 프리픽스 = "FMT"URI "FMT"= <퍼센트 @ 접두사 태그 라이브러리를 변경 = "http://java.sun.com/jstl/ fmt_rt"%> 그리고 그것은 나를 위해 일했습니다!

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

이 저에게 효과적입니다.