АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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>

В результате в браузер будет выведено:

IBM
Sun
Microsoft

Элемент 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 используются только
в тег-файлах. Тег jsp:doBody вызывает тело тега, выводя результат в JspWriter или в атрибут области видимости. Действие jsp:invoke подобно действию jsp:doBody ииспользуетсядля вызова атрибута-фрагмента. Например, поведение тега bodyattr можно воспроизвести так:

<%@ 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-страницу.

В браузер будет выведено:

Rows number: 3
IBM
Sun
Microsoft

Задания к главе 22

Вариант А

Создать классы пользовательских тегов, формирующих нужное количество элементов (строк, ячеек и др.) для размещения результатов выполнения запроса.

1. Элемент массива называют локальным максимумом, если у него нет соседа большего, чем он сам. Аналогично определяется локальный минимум. Определить количество локальных максимумов и ло­кальных минимумов в заданном строкой массиве чисел. Массив задает клиент. Возвратить все максимумы и минимумы пользователю.

2. В неубывающей последовательности, заданной клиентом, найти количество различных элементов и количество элементов, меньших, чем заданное число, и вернуть ему результат.

3. Дана числовая последовательность a1, a­2,…, an. Вычислить суммы вида Si = ai+ai+1 +…+ aj для всех 1£i£j£N и среди этих сумм определить максимальную. Последовательность и число N задает клиент.

4. Точка А и некоторое конечное множество точек в пространстве заданы своими координатами и хранятся в базе данных. Найти N точек из множества, ближайших к точке А. Число N задает клиент.

5. В базе данных хранится список студентов и их оценок по предметам за сессию по 100-балльной системе. Выбрать без повторений все оценки
и соответствующие им записи, встречающиеся более одного раза.

6. Получить упорядоченный по возрастанию массив С, состоящий из
k элементов, путем слияния упорядоченных по возрастанию массивов А и В, содержащих n и m элементов соответственно, k = n + m. Элементы массивов хранятся в базе данных, а значения n и m задает клиент.

7. В матрице А найти сумму элементов, расположенных в строках с отри­цательным элементом на главной диагонали, и произведение элементов, расположенных в строках с положительным элементом в пер­вом столбце. Матрица размерности n хранится в базе данных. Клиент задает размерность m < n матрицы, для которой будет произведен расчет.

8. В программе, хранящейся в текстовом файле, удалить строки с № 1 до № 2, где № 1 и № 2 вводятся клиентом. Удаляемые строки возвратить клиенту. Предусмотреть случаи, когда, например, № 1 меньше номера первой строки, № 1 = № 2, № 2 больше номера последней строки, и другие исключительные ситуации.

9. После n-ой строки программы, которая хранится в файле, вставить
m строк. Числа n, m и вставляемые строки вводятся пользователем. Новый набор данных сохранить на диске и вернуть клиенту.

10. В БД хранятся координаты множества m точек трехмерного пространства. Найти такую точку, чтобы шар заданного радиуса с центром
в этой точке содержал максимальное число точек. Координаты найденных точек возвратить клиенту.

11. Из заданного множества точек на плоскости, координаты которых хранятся в базе данных, выбрать две различные точки, так чтобы окружности заданного пользователем радиуса с центрами в этих точках содержали внутри себя одинаковое количество заданных точек. Полученные множества возвратить клиенту.

12. В базе данных хранятся координаты конечного множества точек плоскости. Пользователем вводятся координаты центра и радиусы 5 концентрических окружностей. Между какими окружностями (1 и 2, 2 и 3,..., 4 и 5) больше всего точек заданного множества? Полученное множество точек возвратить клиенту.

13. В базе данных хранятся координаты вершин выпуклых четырехугольников на плоскости. Сформировать ответ клиенту, со­держащий координаты всех вершин тра­пеций, которые можно сформировать из данных точек.

14. В базе данных хранятся координаты вершин треугольников на плоскости. Для прямоугольных треугольников возвратить клиенту координаты вершин прямого угла, площадь и координаты вершин (одной или двух), ближайших к оси ОХ.

15. В базе данных хранятся координаты множества точек плоскости А
и коэффициенты уравнений множества прямых в этой же плоскости. Передать клиенту набор из пар различных точек – таких, что проходящая через них прямая параллельна прямой из множества В.

Вариант B

Для заданий варианта В предыдущей главы применить пользовательские теги для визуализации работы приложения.

Тестовые задания к главе 22


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)