|
||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Hello, Bender
Если в теле тега имеются элементы jsp:attribute, то тело тега нужно указать явно при помощи стандартного действия jsp:body: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="/WEB-INF/mytaglib.tld" prefix="mytag" %> <HTML> <jsp:useBean id="rw" scope="request" class="test.my.MySet"/> <mytag:bodyattr> <jsp:attribute name="num"> <c:out value="${requestScope.rw.size}"/> </jsp:attribute> <jsp:body> <c:out value="${requestScope.rw.element}"/> </jsp:body> </mytag:bodyattr> </HTML> В результате в браузер будет выведено:
Элемент jsp:element с обязательным атрибутом name используется для динамического определения элемента XML и дополнительно может содержать действия jsp:attribute и jsp:body: <jsp:element name="H2" > <jsp:attribute name="Style"> color:red </jsp:attribute> <jsp:body> Simple Text </jsp:body> </jsp:element> в результате должно быть сгенерировано: <H2 Style="color:red">Simple Text</H2> Стандартные действия jsp:doBody и jsp:invoke используются только <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> <tags:actiondemo> <jsp:attribute name="num"> <c:out value="${sessionScope.mysetInstance.size}"/> </jsp:attribute> <jsp:body> <c:out value="${sessionScope.mysetInstance.element}"/> </jsp:body> </tags:actiondemo> Файл actiondemo.tag помещен в каталог /WEB-INF/tags: <%@ tag import="test.my.MySet" %> <%@ attribute name="num" fragment="true" %> <%@ variable name-given="mysetInstance" %> <%session.setAttribute("mysetInstance", new MySet());%> <TABLE border=1> <TR><TD>Rows number: <jsp:invoke fragment="num"</TD></TR> <TR><TD><jsp:doBody /></TD></TR> <TR><TD><jsp:doBody /></TD></TR> <TR><TD><jsp:doBody /></TD></TR> </TABLE> Здесь директива tag схожа с директивой page для страниц JSP. Директива attribute декларирует атрибут тега actiondemo, и если fragment="true", то этот атрибут можно использовать совместно с jsp:invoke. Директива variable – для передачи переменной обратно в вызывающую JSP-страницу. В браузер будет выведено:
Задания к главе 22 Вариант А Создать классы пользовательских тегов, формирующих нужное количество элементов (строк, ячеек и др.) для размещения результатов выполнения запроса. 1. Элемент массива называют локальным максимумом, если у него нет соседа большего, чем он сам. Аналогично определяется локальный минимум. Определить количество локальных максимумов и локальных минимумов в заданном строкой массиве чисел. Массив задает клиент. Возвратить все максимумы и минимумы пользователю. 2. В неубывающей последовательности, заданной клиентом, найти количество различных элементов и количество элементов, меньших, чем заданное число, и вернуть ему результат. 3. Дана числовая последовательность a1, a2,…, an. Вычислить суммы вида Si = ai+ai+1 +…+ aj для всех 1£i£j£N и среди этих сумм определить максимальную. Последовательность и число N задает клиент. 4. Точка А и некоторое конечное множество точек в пространстве заданы своими координатами и хранятся в базе данных. Найти N точек из множества, ближайших к точке А. Число N задает клиент. 5. В базе данных хранится список студентов и их оценок по предметам за сессию по 100-балльной системе. Выбрать без повторений все оценки 6. Получить упорядоченный по возрастанию массив С, состоящий из 7. В матрице А найти сумму элементов, расположенных в строках с отрицательным элементом на главной диагонали, и произведение элементов, расположенных в строках с положительным элементом в первом столбце. Матрица размерности n хранится в базе данных. Клиент задает размерность m < n матрицы, для которой будет произведен расчет. 8. В программе, хранящейся в текстовом файле, удалить строки с № 1 до № 2, где № 1 и № 2 вводятся клиентом. Удаляемые строки возвратить клиенту. Предусмотреть случаи, когда, например, № 1 меньше номера первой строки, № 1 = № 2, № 2 больше номера последней строки, и другие исключительные ситуации. 9. После n-ой строки программы, которая хранится в файле, вставить 10. В БД хранятся координаты множества m точек трехмерного пространства. Найти такую точку, чтобы шар заданного радиуса с центром 11. Из заданного множества точек на плоскости, координаты которых хранятся в базе данных, выбрать две различные точки, так чтобы окружности заданного пользователем радиуса с центрами в этих точках содержали внутри себя одинаковое количество заданных точек. Полученные множества возвратить клиенту. 12. В базе данных хранятся координаты конечного множества точек плоскости. Пользователем вводятся координаты центра и радиусы 5 концентрических окружностей. Между какими окружностями (1 и 2, 2 и 3,..., 4 и 5) больше всего точек заданного множества? Полученное множество точек возвратить клиенту. 13. В базе данных хранятся координаты вершин выпуклых четырехугольников на плоскости. Сформировать ответ клиенту, содержащий координаты всех вершин трапеций, которые можно сформировать из данных точек. 14. В базе данных хранятся координаты вершин треугольников на плоскости. Для прямоугольных треугольников возвратить клиенту координаты вершин прямого угла, площадь и координаты вершин (одной или двух), ближайших к оси ОХ. 15. В базе данных хранятся координаты множества точек плоскости А Вариант B Для заданий варианта В предыдущей главы применить пользовательские теги для визуализации работы приложения. Тестовые задания к главе 22 Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |