Введение
Стандартная библиотека шаблонов JSP (JSTL) — это новый компонент, разработанный для JSP и выпущенный компанией SUN. JSTL позволяет разрабатывать страницы JSP, используя теги вместо кода скриптлета, к которому привыкло большинство программистов JSP. JSTL может делать почти все, что может делать традиционный код скриптлета JSP. Вам может быть интересно, зачем нам нужен еще один такой язык генерации HTML?
STL позволяет программистам JSP программировать, используя теги вместо кода JAVA. Чтобы показать, почему это лучше, ниже будет приведен пример. Мы рассмотрим очень простую страницу JSP, которая считает от 1 до 10. Мы проверим два метода: один основан на скриптлете JSP, а другой — на JSTL. Когда этот пример страницы счетчика написан с использованием сценария JSP, страница JSP выглядит следующим образом:
<html>
<голова>
<title>Счет до 10 в скриптлете JSP</title>
</голова>
<тело>
<%
for(int i=1;i<=10;i++)
{%>
<%=i%><br/>
<%
}
%>
</тело>
</html>
Как вы можете видеть в приведенном выше примере, исходный код страницы, созданный с помощью кода скриптлета, будет содержать смесь тегов HTML и операторов JAVA. Этот подход к гибридному программированию не является лучшим по следующим причинам.
Основная причина – читабельность. Эта читаемость в основном зависит от людей и компьютеров. JSTL позволяет программистам просматривать страницу, содержащую только полный HTML и HTML-подобные теги.
Код скриптлета SP не читается человеком. Эта смесь скриптлетов и HTML-кода также сложна для чтения компьютерами. Особенно в таких официальных HTML-инструментах, как Dreamweaver и Microsoft FrontPage, неинтуитивность еще более заметна. В настоящее время большинство официальных инструментов HTML изолируют код скриптлета JSP в виде нередактируемых блоков. Этот тип официального HTML-инструмента обычно не может напрямую изменять код скриптлета JSP.
Следующий код показывает, как этот пример счетчика можно написать с использованием JSTL. Как видите, этот листинг кода имеет неизменяемость, используется только один тег. Для создания этой программы используются смешанные теги HTML и JSTL.
<%@ taglib uri=" http://java.sun.com/jstl/core " prefix="c" %>
<html>
<голова>
<title>Пример счета до 10 (с использованием JSTL)</title>
</head>
<тело>
<c:forEach var="i" start="1" end="10" шаг="1">
<c:out value="${i}" />
<br />
</c:forEach>
</тело>
</html>
Когда вы исследуете код приведенного выше примера, вы увидите, что страница JSP содержит только теги. В приведенном выше коде используются теги HTML, такие как <head> и <br>. Использование этого тега не ограничивается тегами HTML. Этот код также может использовать теги JSTL, такие как <c:forEach> и <c:out>. В этой статье будут представлены некоторые основы JSTL.
Установить JSTL
Чтобы использовать JSTL, у вас должен быть установлен контейнер JSP 1.2 (или выше). Наиболее распространенным JSP-контейнером является Apache Tomcat. Вы можете скачать его с http://jakarta.apache.org/tomcat/ . Автономный Tomcat позволяет использовать обычный код скриптлета JSP. Чтобы использовать JSTL, вы должны установить JSTL в Tomcat. Основной URL-адрес JSTL — http://java.sun.com/products/jsp/jstl/ . Чтобы использовать JSTL, вам необходимо разархивировать этот файл и установить его в правильное место для Tomcat.
Чтобы установить JSTL в Tomcat, необходимо выполнить три шага:
Скопировать JAR-файл JSTL в каталог lib Tomcat.
Если вы используете Windows, наиболее вероятным расположением каталога lib является C:Program FilesApache Tomcat 4.0webappsROOT. ВЕБ-INFlib. Вам следует скопировать эти пакеты JAR в каталог JAR Tomcat.
Скопируйте файлы TLD JSTL в каталог web-inf Tomcat.
При просмотре файлов дистрибутива JSTL вы должны заметить, что 8 файлов заканчиваются расширением TLD. Все 8 файлов должны быть скопированы в ваш каталог web-inf.
Измените файл web.xml, включив в него эти файлы TLD.
Наконец, вы должны изменить свой web.xml и добавить 8 записей библиотеки тегов. В таблицу необходимо добавить следующие элементы:
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
После выполнения трех вышеуказанных шагов вы готовы протестировать установку JSTL. Это можно проверить, создав страницу JSP, содержащую JSTL. Одним из простейших примеров программ является приведенная выше программа-счетчик. Вам следует поместить его в корневой каталог веб-сайта (C:Program FilesApache Tomcat 5.0webappsROOT). После запуска Tomcat вы сможете просмотреть эту страницу, перейдя по адресу http://127.0.0.1:8080/count.jsp .
Если вы установили JSTL неправильно, сообщение об ошибке может не появиться. Если JSTL не может интерпретировать значение ваших тегов, он будет пропущен веб-браузером. Веб-браузер затем интерпретирует эти неизвестные теги HTML. Большинство браузеров просто игнорируют эти неизвестные теги HTML.
Продолжение следует...
Перевод Caiyi0903(Willpower), 2004.2.19