Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Герц Д.М. -> "Java Server Pages. Библиотека профессионала" -> 109

Java Server Pages. Библиотека профессионала - Герц Д.М.

Герц Д.М. Java Server Pages. Библиотека профессионала — М.: Вильяме, 2002. — 448 c.
ISBN 5-8459-0290-8
Скачать (прямая ссылка): javaserverpages2002.pdf
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 147 >> Следующая


<%@ page import='Java.util.Iterator' %>

<?@ page import='beans.xml.sax.SAXParserBean' %>

<%@ page import='beans.xml-sax.SAXElement' %>

</head>

<body>

<jsp:useBean id='parser' class='beans .xml. sax.SAXParserBean'

scope='page'/>

<% Collection elements = parser.parse(

"f:/books/jsp/src/xml/booklnventory.xml"); Iterator it = elements.iterator();

%>

<font size='5'>Book Inventory:</font><p>

<% while (it.hasNext() ) (

SAXElement element = (SAXElement) it.next () ;

String tagName = element.getLocalName{);

String showThis = null;

if(tagName.equals("title")) f

showThis = "<b>Title:</b> " +

element.getValue() + "<br/>";

I

else if(tagName.equals("price")) {

showThis = "price: " + element.getValue() + "<p>";

I

l>

<%=> showThis =- null ? "" : showThis %>

<% ) %>

</p>

</body>

</html>

JSPfCKjMCHT, представленный в листинге, осуществляет перебор элементов (SAXElement}, которые были созданы в процессе разбора компонентом SAXParser-Bean. Имя дескриптора возвращает метод SAXElement .getLocalName, а значение дескриптора позволяет определить метод SAXElement. getValue.
Разбор XML-кода 323

SAX-разбор с применением пользовательских

дескрипторов

Пользовательские дескрипторы, которые содержатся в документе, представленном в листинге 11.6, полностью исключают Java-код изЛР-документа. Документ, приведенный в листинге 11.6, выполняет те же функции, что и рассмотренный ранее JSP-документ. код которого был показан в листинге 11.5,г.

Листинг 11.6. /test_sax.jsp — выполняет те же функции, что и документ, показанный в листинге 11.5,г

<html><head><title>SAX Example</title>

<%@ taglib uri='/WEB-INF/tlds/sax.tld' prefixA'sax' %>

<l@ page import='beans.xml . sax .SAXElement' %>

</head>

<body>

<font size=' 5' >Book Inventory: </fontxp>

<3ax:iterateElements id='element'

xmlFile='f:/books/jsp/sre/xml/booklnventory.xml'> <sax:ifElementNameEquals element='<%= element %>'

names='title'>

<b>Title:</b> <%= element.getValue() %><br/> </sax:ifElementNameEquals>

<sax:ifElementNameEquals elementA'<l= element %>'

f . . names= price'>

price: <%= element.getValue() %><p>

</sax:ifElementNameEquals>

</sax:iterateElements></p>

</body>

</html>

Дескриптор iterateEleraents использует класс SAXParserBean, приведенный в листинге 11.5,а, для разбора XML-документа и перебора элементов, a ifElement-NameEquals включает тело дескриптора в зависимости от имени текущего элемента.

Дескриптор iterateElements создает для текущего элемента переменную сценария; имя этой переменной определяется атрибутом id данного дескриптора. Таким образом, каждый из XML-элементов, содержащихся в файле inventory.xml, становится доступным посредством переменной сценария element.

Переменная сценария, сгенерированная дескриптором iterateEleraents, передается дескриптору ifElementNameEquals. Этот дескриптор включает содержащиеся в нем данные в том случае, если имя элемента совпадает с именем, указанным посредством атрибута names.

На рис. 11.5 показано более сложное приложение, которое использует рассмотренные выше дескрипторы для просмотра файла описания библиотеки дескрипторов (TLD — Tag Library Descriptor).
324 Глава 11. XML

Ewrrtt-MIhmcB Hsrnii ?«*«f - :,¦/ ; ;; ^ ,( --’v'VY ,‘І ' : -lOlxl ;:\flip Edit . И«* FfcrerllM _ IOOIJ ц..1р . . ¦- ' ., ... . ,. '. .
Jt^yAmjffl hlip: //loeelhotl: BlMO/mlrtBLMi(.lld. itp
Sun Microsystems Press Database Tag Library
You can execute database queries and iterate over the results witri the tags in this library. This library also includes tags for prepared statements and transactions.
] TsgNama j Tag Class Body Content [ Attributes .
Jtransaction jl9 g s. jtJbc. TransactionTag tagdependent [file
Jp re p з г e 3l a [ e m e nt t a [g s.j d be PrepareStatementTag tagdependent ^scope id '
I э xscutePrepare d 5t at e mentl 1 ags.jdbc. EzxecutePreparedSt 3t втв ntTa [query [lags.jdbc. OueryTag None tagdependent I id scope variables ! id scope update
|raws tags.jdb^ Rows Tag JSP [query startRow endRow
I с о 1 umnNames jtags.jdbc. ColumnNamasTag JSP (query id
(columns lags jdbc. .Column sTag JSP (query id
[release ,(tags. jdbc. RalaaseTa g JSP (query
'.CDore ' ;*fc Local ittml .J

Puc. 11.5. Разбор TLD-файла с применением пользовательских дескрипторов JSP

В листинге П,7,а представлено содержимое TLD-файла, разбор которого осуществляется с помощью JSP-документа, показанного на рис. 11.5.

Листинг 11.7,a. database. tld

<?xml version=”1.0” encoding-”!SO-a859-l” ?>

<DOCIYPE taglib PUBLIC

”-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN” ”http://Java.sun.com/j 2ee/dtds/web-j sptaglibrary_l_l.dtd”>

<taglib>

<tlibversion>l.0</tlibversion>

<jspversion>l.l</jspversion>

<shortnarae>

Sun Microsystems Press Database Tag Library </shortname>

<info>

You can execute database queries and iterate over the results with the tags in this library. This library also includes tags for prepared statements and transactions. </info>
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 147 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.