Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 430
Ильдар Шаукатович Хабибуллин
Второй, необязательный, атрибут
flush="true или false"
указывает, очищать ли выходной буфер перед включением ресурса. Его значение по умолчанию "false".
Вторая форма элемента, include, содержит теги <jsp:param> в теле элемента (обратите внимание на отсутствие наклонной черты в конце открывающего тега):
<jsp:include
Здесь записываются теги вида <jsp:param>
</jsp:include>
В теле элемента можно записывать произвольные параметры. Они имеют вид
<jsp:param name="имя■
value="
"Выражение JSP" записывается так же, как и в заголовке тега. Параметры передаются включаемому ресурсу как его начальные параметры, и их имена, разумеется, должны совпадать с именами начальных параметров ресурса.
Включаемый JSP-файл может быть оформлен не полностью, а содержать только отдельный фрагмент кода JSP. В таком случае его имя записывают обычно с расширением jspf (JSP Fragment).
Следующий стандартный тег <jsp:element> позволяет динамически определить какой-нибудь элемент XML. У него один обязательный атрибут name — имя создаваемого элемента XML. В его теле можно определить атрибуты создаваемого элемента XML с помощью элемента <jsp:attribute> и тело создаваемого элемента XML с помощью элемента <j sp:body>. Например:
<jsp:element name="${myElem}"
xmlns:j sp="">
<j sp:attribute name="lang">${content.lang}</j sp:attribute>
<j sp:body>${content.body}</jsp:body>
</jsp:element>
Еще один простой стандартный тег <jsp:text> не содержит атрибутов. Его тело без всяких изменений передается в выходной поток. Например:
<j sp:text>
while(k < 10) {a[k]++; b[k++] = $1;}
</jsp:text>
Вы, наверное, заметили, что теги JSP не создают никакого кода инициализации сервлета, того, что обычно записывается в метод init() сервлета. Такой код при необходимости как-то инициализировать полученный после компиляции сервлет надо записать в метод j spInit () по следующей схеме:
<j sp:declaration>
public void jspInit(){
// Записываем код инициализации
}
</jsp:declaration>
Аналогично, завершающие действия сервлета можно записать в метод jspDestroy() по такой схеме:
<j sp:declaration>
public void jspDestroy(){
// Записываем код завершения
}
</jsp:declaration>
Язык записи выражений EL
Хотя на странице JSP можно записать любое выражение языка Java в теге <%=.. .%> или в элементе XML <jsp:expression>...</jsp:expression>, в JSP, начиная с версии 2.0, введен язык EL (Expression Language), предназначенный для записи выражений. Язык JSP EL появился в русле тенденции к изгнанию со страниц JSP чужеродного кода и замены его своими "родными" конструкциями.
В языке JSP EL выражения окружаются символами ${...}, например ${2 + 2}. Это окружение дает сигнал к вычислению заключенного в них выражения. Выражение, записанное без этих символов, не будет вычисляться и воспримется как простой набор символов.