Включение стандартной библиотеки тегов (JSTL) JavaServerPages в JSP - PullRequest
5 голосов
/ 08 марта 2010

Мне кажется, что я что-то упускаю - из того, что кажется, JSP выходит из коробки с поддержкой тегов, как показывает ответ на этот вопрос (парень задавал вопрос pure-jsp и получил ответ с участием тегов). Но если я попытаюсь запустить данный код

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

(конечно, с myString, определенным ранее), jsp просто записывает вышеуказанную строку в html.

Должен ли я сделать что-то дополнительное, чтобы включить его?

Ответы [ 2 ]

8 голосов
/ 08 марта 2010

Поддержка JSTL зависит от используемого appserver / servletcontainer. Некоторые корабли с JSTL, другие нет. Это не зависит от версии JSP / Servlet. Например, Sun Glassfish (как полноценная реализация Java EE) поставляется с JSTL из коробки, и, например, Apache Tomcat (как простая реализация JSP / Servlet) не ' т. Для них вам нужно будет установить JSTL самостоятельно.

На самом деле все довольно просто (если вы используете Servlet 2.5 или новее):

  1. Скачать jstl-1.2.jar .
  2. Поместите / скопируйте его в папку /WEB-INF/lib веб-приложения (которая является частью пути к классам веб-приложения по умолчанию).
  3. Объявите теги в верхней части JSP согласно этой документации JSTL (щелкните любую из меток, чтобы увидеть примеры объявления). Для ядра JSTL это следующее:

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

Вот и все. Если вы (все еще) используете Servlet 2.4, вам нужно вместо этого загрузить jstl.jar и standard.jar (которые являются частью JSTL 1.1). Остаток шагов одинаков (просто поместите в classpath и объявите в верхней части JSP).

Вы можете заметить, что некоторые плохие онлайн-руководства предлагают извлечь файл JAR и загромождать web.xml веб-приложения декларациями TLD. Вы никогда не должны этого делать, это неверное предположение, которое вызвано изменением URI taglib во время шага JSTL 1.0 -> JSTL 1.1. Вместо того, чтобы обновлять URI тегов в JSP, решили переопределить старые URI тегов в web.xml, и это стало мифом.

Сам JSP поставляется только с тегами <jsp:xxx> из коробки. Вы можете найти их все в этом документе (который действительно довольно старый, но не изменился до текущей JSP 2.2).

1 голос
/ 08 марта 2010

Вам нужно объявить taglib в верхней части JSP:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...