Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 72

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 66 67 68 69 70 71 < 72 > 73 74 75 76 77 78 .. 271 >> Следующая

Класс обработчика нестандартных тегов должен расширять класс Tag-Support, если тело тега игнорируется, или если во время обработки нестандартного тега осуществляется лишь вывод данных.
Общая методическая рекомендация 3.15_
Класс обработчика нестандартных тегов должен расширять класс Body TagSupport, если обработчик взаимодействует с содержимым тела тега.
Общая методическая рекомендация 3.16
Обработчики нестандартных тегов должны быть определены в пакетах Java.
JavaServer Pages (JSP)
157
Класс WelcomeTagHandler реализует интерфейс Tag, расширяя класс TagSup-port (оба из пакета java.servlet.jsp.tagext). Наиболее важными методами интерфейса Tag являются методы doStartTag и doEndTag. Контейнер JSP вызывает эти методы, когда обнаруживает начальный (открывающий) нестандартный тег и конечный (закрывающий) нестандартный тег, соответственно. Эти методы возбуждают исключения JspException, если при обработке нестандартного тега возникают проблемы.
1 // РИС. 3.31. WelcomeTagHandler.java
2// Нестандартный обработчик тегов, обрабатывающий простой тег.
3 package com.deitel.advjhtpl.jsp.taglibrary;
4
5// Набор базовых пакетов Java 6 import j ava.io. *;
7
8// Пакеты расширений Java
9 import javax.servlet.jsp.*; 10 import javax.servlet.jsp.tagext.*; 11
12 public class WelcomeTagHandler extends TagSupport { 13
14 Il Метод, вызываемый, чтобы начать обработку тега
15 public int doStartTag() throws JspException
16 (
17 I/ попытка обработки тега
18 try f
19 // получение объекта JspWriter для вывода содержимого
20 JspWriter out = pageContext.getOutO; 21
22 Il вывод содержимого
23 out.print( "Welcome to JSP Tag Libraries!" );
26 Il повторное возбуждение исключения IOException контейнеру
JSP как исключения JspException
27 catch ( IOException ioException ) {
28 throw new JspException( ioException.getMessage() ); 1
30 31 return SKIP BODY 32 ) 33 ) ; 11 игнориров ать тело 1 гега
Рис. 3.31. Обработчик нестандартного тега WekomeTagHandle Г
Общая методическая рекомендация 3.17
Если в классе обработчика нестандартного тега возбуждаются исключения, отличные от JspException, они должны перехватываться и обрабатываться. Если такие исключения препятствуют надлежащей обработке тега, они должны быть возбуждены повторно как исключения типа JspException.
В этом примере класс WelcomeTagHandler переопределяет метод doStartTag, чтобы вывести текст, который становится частью ответа, посылаемого JSP-страницей. В строке 20 используется объект pageContext обработчика нестандартного
158
Глава З
тега (унаследованный от класса TagSupport) для получения объекта JSP Jsp Writer, который метод doStartTag использует для вывода текста. В строке 23 осуществляется вывода строки с использованием объекта Jsp Writer. В строке 31 возвращается статическая целочисленная константа SKIPJBODY (определенная в интерфейсе Tag) для указания, что контейнер JSP должен игнорировать любой текст или другие элементы, которые присутствуют в теле тега. Чтобы включить тело содержимого в ответ, задайте статическую целочисленную константу EVALJBO-DY-INCLUDE в качестве возвращаемого значения. В этом примере при обнаружении контейнером JSP конечного тега какой-либо обработки не требуется, поэтому мы не переопределяем метод doEndTag.
На рис. 3.32 представлено определение файла дескриптора библиотеки нестандартных тегов. Этот XML-документ содержит информацию, необходимую для контейнера JSP, например, номер версии библиотеки тегов (элемент tlibversion), номер версии JSP (элемент jspversion), сведения о библиотеке (элемент info) и сведения о тегах в библиотеке (по одному элементу tag для каждого тега). В этом дескрипторе библиотеки тегов элемент tag в строках 18-30 определяет наш нестандартный тег welcome. В строке 19 задается имя name тега, используемое программистами JSP для доступа к нестандартным функциональным возможностям с JSP-страницы. В строках 21—23 задается элемент tagclass для класса обработчика нестандартного тега. Этот элемент связывает имя тега с определенным классом обработчика тега. Элемент body context (строка 25) указывает, что наш нестандартный тег имеет пустое (empty) тело. Этот элемент также может иметь значение tagdependent или JSP. В строках 27-29 задается информацию о теге с помощью элемента info. [Замечание. По мере необходимости мы будем знакомиться с другими элементами дескриптора библиотеки тегов. Полное описание дескриптора библиотеки тегов имеется в спецификации JavaServer Pages 1.1, которую можно загрузить по адресу java.sun.com/products/jsp/download.html.]
Общая методическая рекомендация 3.18_
Класс обработчика нестандартного тега должен задаваться в элементе tagclass дескриптора библиотеки тегов с указанием полного имени пакета.
1 <?xml version = "1.0" encoding = "ISO-8859-1" ?>
2 <!DOCTYPE taglib POBLIC
3 "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
4 "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_l_l.dtd"> 5
6<!-- дескриптор библиотеки тегов —>
7
8 <taglib>
9 <tlibversion>l.0</tlibversion>
Предыдущая << 1 .. 66 67 68 69 70 71 < 72 > 73 74 75 76 77 78 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100