Хабибуллин
Обработка тегов средствами JSP
Уже упоминавшаяся тенденция к изгнанию со страниц JSP всякого чужеродного кода, даже кода Java, привела к тому, что для обработки пользовательского тега вы можете вместо класса Java написать страницу JSP, описав на ней действия тега. Имя файла с такой страницей-обработчиком JSP получает расширение tag, а если она оформлена как документ XML, то расширение tagx. Файл, содержащий отдельный фрагмент стра- ницы-обработчика, получает имя с расширением tagf.
Например, тег <sdo:info />, действие которого мы показали в листинге 27.5, можно обработать следующей, очень простой, страницей JSP, записанной в tag-файл с именем info.tag:
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
Содержание
- Введение
- Выполнение Java-программы
- Как использовать JDK?
- Литература по Java
- Аннотации
- Константы
- Целые
- Имена
- Примитивные типы данных и операции
- Операции над целыми типами
- Арифметические операции
- Сдвиги
- Упражнения
- Условная операция
- Упражнения
- Выражения
- Операторы
- Операторы цикла
- Массивы
- Принципы объектно-ориентированного программирования
- Абстракция
- Ответственность
- Упражнения
- Как описать класс и подкласс?
- Переопределение методов
- Операция new
- Упражнение
- Статические члены класса
- Вложенные классы
- Отношения "быть частью" и "являться"
- Размещение пакетов по файлам
- Перечисления
- Design patterns
- Схема проектирования MVC
- Заключение
- Вопросы для самопроверки
- Настраиваемые типы (generics)
- Класс String
- Как создать строку
- Упражнение
- Сцепление строк
- Как узнать длину строки
- Как найти символ в строке
- Упражнения
- Класс StringBuilder
- Конструкторы
- Синтаксический разбор строки
- Класс StringTokenizer
- Класс Stack
- Интерфейс Collection
- Интерфейс List
- Интерфейс Set
- Интерфейс SortedSet
- Интерфейс Queue
- Интерфейс BlockingQueue
- Интерфейс Deque
- Интерфейс Map
- Абстрактные классы-коллекции
- Интерфейс Iterator
- Классы, создающие списки
- Упражнение
- Классы, создающие отображения
- Связанные отображения
- Упорядоченные отображения
- Упражнение
- Классы, создающие множества
- Связанные множества
- Заключение
- Вопросы для самопроверки
- Получение случайных чисел
- Копирование массивов
- Использование системных приложений
- Splash Screen
- Заключение
- Вопросы для самопроверки
- Класс FontMetrics
- Преобразование координат
- Класс AffineTransform
- Вывод текста средствами Java 2D
- Упражнение
- Заключение
- Вопросы для самопроверки
- Класс Cursor
- Как создать свой курсор
- Класс Container
- События
- Текстовая метка Label
- События
- Кнопка Button
- События
- Кнопка выбора Checkbox
- События
- Класс CheckboxGroup
- События
- Строка ввода TextField
- События
- Поле ввода TextArea
- Линейка прокрутки Scrollbar
- События
- Контейнер Panel
- Контейнер Window
- События
- Контейнер Dialog
- Основные компоненты Swing
- Компонент JComponent
- Упражнение
- Счетчик JSpinner
- Упражнение
- Индикатор JProgressBar
- Дерево объектов JTree
- Построение меню средствами Swing
- Строка меню JMenuBar
- Меню JMenu
- Пункт меню JMenuItem
- Пункт меню JCheckBoxMenuItem
- Пункт меню JRadioButtonMenuItem
- Всплывающее меню JPopupMenu
- Панель выбора цвета JColorChooser
- Упражнение
- Окно выбора файла JFileChooser
- Фильтр файлов FileFilter
- События в документе
- Реализации документа
- Контроллер — редактор текста
- Курсор
- Реализации редактора
- Раскладка клавиатуры
- Область ввода JTextArea
- Модель данных таблицы
- Модель ячеек таблицы
- Визуализация ячеек таблицы
- Вопросы для самопроверки
- Контейнеры Swing
- Панель JPanel
- Панель с вкладками JTabbedPane
- Линейная панель Box
- Менеджер размещения BoxLayout
- Слоеная панель JLayeredPane
- Диалоговое окно JDialog
- Упражнение
- Событие ActionEvent
- Обработка действий мыши
- Событие изменения ChangeEvent
- Обработка действий с окном
- Несколько слушателей одного источника
- Вопросы для самопроверки
- Объемная рамка BevelBorder
- Закругленная объемная рамка SoftBevelBorder
- Врезанная рамка EtchedBorder
- Рамка с изображением MatteBorder
- Задание стандартного L&F
- Вопросы для самопроверки
- Сведения об окружении апплета
- Упражнение
- Изображение и звук в апплетах
- Слежение за процессом загрузки
- Заключение
- Вопросы для самопроверки
- Упражнения
- Звук
- Синтез и запись звука в Java
- Вопросы для самопроверки
- Порядок обработки исключений
- Упражнение
- Синхронизация подпроцессов
- Приоритеты подпроцессов
- Консольный ввод/вывод
- Форматированный вывод
- Класс Console
- Упражнения
- Файловый ввод/вывод
- Поток простых типов Java
- Кодировка UTF-8
- Класс DataOutputStream
- Прямой доступ к файлу
- Упражнение
- Каналы обмена информацией
- Печать в Java
- Печать средствами Java 2D
- Вопросы для самопроверки
- Работа в WWW
- Работа по протоколу TCP
- Упражнения
- Работа по протоколу UDP
- Компоненты JavaBeans
- Вопросы для самопроверки
- Интерфейс ServletResponse
- Цикл работы сервлета
- Работа по протоколу HTTP
- Интерфейс HttpServletRequest
- Сеанс связи с сервлетом
- Обращение к другим ресурсам
- Вопросы для самопроверки
- Язык записи выражений EL
- Обращение к компоненту JavaBean
- Обработка взаимодействующих тегов
- Обработка исключений в пользовательских тегах
- Обработка тегов средствами JSP
- Стандартные библиотеки тегов JSTL
- Библиотека xml
- Библиотека fmt
- Библиотека sql
- Библиотека fn
- Frameworks
- Вопросы для самопроверки
- Схема XML
- Встроенные простые типы XSD
- Вещественные числа
- Целые числа
- Строки символов
- Определение простых типов
- Сужение
- Описание элементов и их атрибутов
- Определение сложных типов
- Определение типа со сложным телом
- Другие языки описания схем
- Инструкции по обработке
- Анализ документов XML с помощью DOM API
- Другие DOM-парсеры
- Преобразование дерева объектов в XML
- Список литературы