2010-03-08 5 views
5

뭔가 빠져있는 것처럼 느껴진다. JSP는 this question's answer이 보여주는 바와 같이 순수 JSP로 질문하고있다. 태그가 포함 된 답변을 얻었습니다. 내가 (물론, 이전에 정의 된 myString와) 지정된 코드JSP에서 JavaServerPages 표준 태그 라이브러리 (JSTL) 활성화

<c:out value="${myString}"/> 

를 실행하려고하면 는하지만, JSP는 단지 HTML에 위의 라인을 기록합니다.

사용하려면 추가로해야합니까?

답변

8

JSTL 지원은 사용되는 애플리케이션 서버/servletcontainer에 따라 달라집니다. JSTL이있는 일부 선박은 그렇지 않습니다. 이는 JSP/Servlet 버전과 관계 없습니다. 예를 들어, Sun Glassfish (완전한 기능을 갖춘 Java EE 구현)는 JSTL과 함께 제공되며 예를 들어 Apache Tomcat (단순한 JSP/Servlet 구현)이 제공하지 않습니다. 그들에게 JSTL을 직접 설치해야합니다.

사실은 아주 간단합니다 (당신은 서블릿 2.5 이상을 사용하는 가정) 것 :

  1. 다운로드 jstl-1.2.jar합니다.
  2. webapp의 /WEB-INF/lib 폴더 (이 파일은 webapp의 기본 클래스 경로에 포함되어 있음)에 넣거나 복사하십시오.
  3. this JSTL documentation으로 JSP 상단에 태그를 선언하십시오 (선언문 예제를 보려면 taglib 중 하나를 클릭하십시오). JSTL core를 들어 다음과 같은있다 : 전부

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

합니다. 서블릿 2.4에서 (여전히) 서면, 대신 jstl.jarandstandard.jar (JSTL 1.1의 일부)을 다운로드해야한다. 단계의 나머지 부분은 동일합니다 (클래스 경로에 놓고 JSP의 맨 위에 선언하십시오).

가난한 온라인 자습서 중 일부는 JAR 파일을 추출하고 웹 응용 프로그램의 web.xml을 TLD 선언으로 혼란시키는 것을 알 수 있습니다. JSTL 1.0 -> JSTL 1.1 단계에서 taglib URI의 변경으로 인해 발생하는 잘못된 제안입니다. JSP에서 taglib URI를 업데이트하는 대신, 이전 taglib URI를 web.xml에 다시 정의하기로 결정한 것은 신화가되었습니다.

JSP 자체는 <jsp:xxx> 태그 만 제공됩니다. 당신은 그것들을 모두 this document에서 찾을 수 있습니다 (실제로 꽤 오래되었지만 현재 JSP 2.2로 변경되지 않았습니다).

1

당신은 JSP의 상단에있는 태그 라이브러리를 선언해야합니다

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

고마워요! 이것은 올바른 방향으로 나아가지만 여전히 정확한 대답은 아닙니다. org.apache.jasper.JasperException 예외 : 절대 URL : http://java.sun.com/jsp/jstl/core web.xml 또는이 응용 프로그램과 함께 배포 된 jar 파일에서 해결할 수 없습니다 .' 무언가를 설치해야한다면 괜찮습니다.하지만이 taglib은 jsp로 "즉시"제공됩니다. 답변을 답변에 추가 할 수 있습니까? – olamundo

+0

@Noam : 특정 버전의 JSP (이 경우 2.0 이상)에서만 제공됩니다. 하지만 당신이 당신의 설정에 대해 아무 것도 말하지 않았으므로 당신에게 더 나은 대답을 줄 수는 없습니다. – skaffman

+0

skaffman, 실제로는 사실이 아닙니다. 이는 사용 된 서버에 따라 다릅니다. – BalusC