JSTL

2,266 views

Published on

Presentation about JavaServer Pages Standard Tag Library (JSTL).

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,266
On SlideShare
0
From Embeds
0
Number of Embeds
510
Actions
Shares
0
Downloads
98
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96 java.net.URLEncoder – кодиране на URL java.net.URLDecoder – декодиране на URL sendRedirect() - javax.servlet.http.HttpServletResponse – въща заявка към клиента за redirect RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aDestination.toString()); dispatcher.forward(aRequest, aResponse); - прави servlet chain 'Refresh: 10; url=http://www.mysite.com/otherpage.php' – client redirect header
  • ## * * 07/16/96
  • ## * * 07/16/96
  • ## * * 07/16/96
  • JSTL

    1. 1. JSTL (JavaServer Pages Standard Tag Library) Борислава Спасова Мартин Чиллев
    2. 2. Съдържание <ul><li>JSP потребителски тагове и библиотеки </li></ul><ul><li>JSTL тагове </li></ul><ul><ul><li>Структурни </li></ul></ul><ul><ul><li>Локализация </li></ul></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>Достъп до бази данни и SQL </li></ul></ul>
    3. 3. JSP потребителски тагове и библиотеки JSP Custom Tags and Tag Libraries
    4. 4. Какво e потребителски таг ? <ul><li>Потребителските тагове ( custom tags) са компоненти за многократно използване </li></ul><ul><ul><li>Всеки разработчик може да ги създаде </li></ul></ul><ul><ul><li>Могат да се изтеглят от Интернет ( http://www.jsptags.com ) </li></ul></ul><ul><ul><li>Позволяват компонентно-ориентирана разработка в уеб приложенията </li></ul></ul><ul><ul><li>Скриват сложността на визуализацията </li></ul></ul><ul><ul><li>Разработчиците се съсредоточават върху същината на проекта </li></ul></ul>
    5. 5. Потребителски тагове <ul><li>Потребителските тагове изглеждат като HTML тагове </li></ul><ul><ul><li>Дизайнери и разработчици са свикнали да работят с тях </li></ul></ul><ul><ul><li>Имат поведение, дефинирано от програмиста </li></ul></ul><ul><ul><li>Могат да приемат параметри </li></ul></ul><ul><li>Пример: </li></ul><myTags:calendar date=&quot;17/12/2006&quot; />
    6. 6. Какво е библиотека с тагове? <ul><li>Библиотеките с тагове ( tag libraries) са съвкупности от тагове </li></ul><ul><ul><li>Имат име ( prefix) и URI идентификатор </li></ul></ul><ul><li>Състоят се от: </li></ul><ul><ul><li>Интерфейс ( TLD файлове) </li></ul></ul><ul><ul><ul><li>XML базирано описание на таговете </li></ul></ul></ul><ul><ul><li>Имплементация ( JAR файлове) </li></ul></ul><ul><ul><ul><li>Съвкупност от компилирани класове и ресурси </li></ul></ul></ul>
    7. 7. Как да използваме библиотека с тагове? <ul><li>Включваме библиотеката с тагове към уеб приложението </li></ul><ul><ul><li>Слагаме необходимите TLD и JAR файлове в /WEB-INF и в /WEB-INF/lib </li></ul></ul><ul><li>Регистрираме библиотеката с тагове </li></ul><ul><li>Използваме тагове от библиотеката чрез посочения при регистрацията префикс </li></ul><%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %> <c:out value=&quot;I am a custom tag&quot; />
    8. 8. JSTL (JavaServer Pages Standard Tag Library) Стандартната библиотека с тагове в JSP стандарта
    9. 9. Какво е JSTL? <ul><li>JSTL е стандартна библиотека с тагове </li></ul><ul><ul><li>Част от JSP 2.0 стандарта </li></ul></ul><ul><li>JSTL имплементира често използвани в уеб приложенията функционалности </li></ul><ul><ul><li>JSTL Core – базови (основни) функции </li></ul></ul><ul><ul><ul><li>Работа с променливи, условия, цикли , I/O </li></ul></ul></ul><ul><ul><li>JSTL Format – ф орматиране и i18n </li></ul></ul><ul><ul><ul><li>Message bundles, числа, дати </li></ul></ul></ul><ul><ul><li>JSTL XML – работа с XML данни </li></ul></ul><ul><ul><ul><li>Парсване на XML , XSL трансформации </li></ul></ul></ul><ul><ul><li>JSTL SQL – Работа с бази от данни и SQL </li></ul></ul><ul><ul><ul><li>Изпълнение на SQL заявки </li></ul></ul></ul>
    10. 10. Защо JSTL? <ul><li>Позволява JSP страниците да съдържат чист XML (JSPX страници) </li></ul><ul><ul><li>Избягваме употребата на JSP елементи за скриптиране </li></ul></ul><ul><ul><li>Избягване на Java код в страниците </li></ul></ul><ul><ul><li>Кодът става по-лесен за четене и поддръжка </li></ul></ul><ul><li>Спестяваме усилия </li></ul><ul><ul><li>Ползваме наготово най-често използваната функционалност </li></ul></ul>
    11. 11. JSTL Core Tags
    12. 12. JSTL Core тагове <ul><li>Включване на JSTL Core библиотеката </li></ul><ul><li>Работа с променливи : </li></ul><%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot;> <%-- Save data in scoped variables --%> <c:set var=&quot;name1&quot; value=&quot;value1&quot; scope=&quot;page&quot; /> <c:set var=&quot;name2&quot; value=&quot;value2&quot; scope=&quot;request&quot; /> <c:set var=&quot;name3&quot; value=&quot;value3&quot; scope=&quot;session&quot; /> <c:set var=&quot;name4&quot; value=&quot;value4&quot; scope=&quot;application&quot; />
    13. 13. Core тагове <ul><ul><li><c:out> </li></ul></ul><ul><ul><li><c:remove> </li></ul></ul><ul><ul><li><c:catch> </li></ul></ul><c:out value='${pageScope.someBean}' /> <c:out value='${user.login}' /> <c:out value='${user.name}' /> <c:out value='${user.title}' escape Xml ='false' /> <c:remove var=&quot;name&quot; scope=&quot;page&quot; /> <c:catch var=&quot;myException&quot;> Inside the catch… <% int x = 10/0; %> </c:catch>
    14. 14. Core тагове <ul><li>Условни </li></ul><ul><ul><li><c:if> </li></ul></ul><ul><ul><li><c:choose>, <c:when>, <c:otherwise> </li></ul></ul><c:if test='${param.p == &quot;someValue&quot;}'> The property p of param is equal to &quot;someValue&quot; </c:if> <c:choose> <c:when test='${param.p == &quot;someValue&quot;}'> Generate this if p equals someValue </c:when> <c:otherwise> Otherwise generate this template </c:otherwise> </c:choose>
    15. 15. Core тагове <ul><li>Итерация </li></ul><ul><ul><li><c:forEach> </li></ul></ul><ul><ul><li>Итерация върху масив или списък </li></ul></ul><c:forEach var='item' begin='1' end='10'> <c:out value='${item}'/> </c:forEach> <ul> <c:forEach var='item' items='${itemsList}'> <li><c:out value='${item}'/></li> </c:forEach> </ul>
    16. 16. Core тагове <ul><li>Итерация </li></ul><ul><ul><li>Итерация върху Map обект (например HashTable ) </li></ul></ul><c:forEach var='item' items='${map}'> <c:out value='Key=${item.key} /> <c:out value='Key=${item.value} /> </c:forEach>
    17. 17. Core тагове <ul><li>Създаване на URL с параметри </li></ul><ul><ul><li><c:url> – построява и encode-ва URL </li></ul></ul><ul><ul><li><c:redirect> – праща redirect заявка към клиента </li></ul></ul><c:url value=&quot;http://www.somewhere.com/ customers/register&quot; var=&quot;registrationURL&quot;> <c:param name=&quot;name&quot; value=&quot;${param.name}&quot;/> <c:param name=&quot;country&quot; value=&quot;${param.country}&quot;/> </c:url> <a href='<c:out value=&quot;${registrationURL}“/>'> Customer Registration>/a> <c:redirect url=&quot;http://www.somewhere.com/register&quot;>
    18. 18. JSTL Formatting and Internationalization Tags
    19. 19. Internationalization тагове <ul><li>Включване на библиотеката за форматиране </li></ul><ul><li>Предефиниране на текущия locale </li></ul><ul><li>Предефиниране на кодирането на HTTP заявката </li></ul><%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; prefix= &quot; fmt &quot; > <fmt:setLocale value=&quot;bg&quot; /> <fmt:requestEncoding value=&quot;UTF-8&quot;/>
    20. 20. Internationalization тагове <ul><li>Задаване на файл с текстови ресурси (resource bundle) </li></ul><ul><li>Отпечатване на локализирани съобщения от resource bundle </li></ul><fmt:setBundle basename=&quot;Messages&quot; var= &quot; messagesBundle &quot; /> <fmt:bundle basename=&quot;Messages&quot;> <%-- Контекст повлиян от локализацията --%> <fmt:message key=&quot;EnterUserNameMsg&quot; /> </fmt:bundle>
    21. 21. Internationalization тагове <ul><li>Изкарване на съобщение от ресурсен файл </li></ul><ul><li>Зареждане на съобщение с параметър </li></ul><fmt:message key=&quot;messageKey&quot; bundle=&quot;resourceBundle&quot; /> <fmt:message key= &quot; messageKey &quot; bundle= &quot; resourceBundle &quot; > <fmt:param value= &quot; messageValue &quot; /> </fmt:message>
    22. 22. Internationalization тагове <ul><li>Форматиране на число </li></ul><ul><li>Форматиране на дата по шаблона на java.text.SimpleDateFormat </li></ul><fmt:formatNumber value= &quot; ${someNumber} &quot; pattern= &quot; ###,###.## &quot; /> <fmt:formatDate value= &quot; ${someDate} &quot; pattern= &quot; hh:mm:ss MM/dd/yy &quot; /> <fmt:formatNumber value= &quot; ${someMoney} &quot; type= &quot; currency|percent|number &quot; />
    23. 23. Internationalization тагове <ul><li>Парсване на число </li></ul><ul><li>Парсване на дата </li></ul><c:catch var=&quot;parsingError&quot; <fmt:parseNumber value=&quot;${numberToParse}&quot; type=&quot;number&quot; var=&quot;parsedNumber&quot;/> </c:catch> <fmt:parseDate value= &quot; 2/5/53 &quot; pattern= &quot; dd/MM/yy &quot; var= &quot; johnBirthdate &quot; />
    24. 24. Internationalization тагове <ul><li>Задаване на времева зона </li></ul><fmt:timeZone value= &quot; US/Eastern &quot; > <fmt:parseDate value= &quot; 2/5/53 &quot; pattern= &quot; dd/MM/yy &quot; var= &quot; johnBirthday &quot; /> <fmt:formatDate value= &quot; ${johnBirthday} &quot; dateStyle= &quot; short &quot; /> <%-- ще изкара 5/2/53 --%> </fmt:timeZone>
    25. 25. JSTL XML Tags
    26. 26. JSTL XML тагове <ul><li>Включване на JSTL XML библиотеката </li></ul><ul><li>Парсване на XML низ в променлива: </li></ul><ul><li>Извеждане на стойност от XPath израз от XML документ от променливата catalog : </li></ul><%@ taglib uri=&quot;http://java.sun.com/jstl/xml&quot; prefix=&quot;x&quot; %> <x:out select=&quot;$catalog/book/title&quot;/> <x:parse var=&quot;catalog&quot; xml=&quot;${catalogXml}&quot; />
    27. 27. JSTL XML тагове <ul><li>Итериране по XPath израз: </li></ul><x:forEach var=&quot;item&quot; select=&quot;$catalog/items&quot;> <tr> <td><x:out select=&quot;author/name/first&quot; /></td> <td><x:out select=&quot;author/name/last&quot; /></td> <td><x:out select=&quot;title&quot; /></td> <td><x:out select=&quot;price&quot; /></td> </tr> </x:forEach>
    28. 28. JSTL SQL Tags
    29. 29. SQL тагове <ul><li>Конфигуриране на базата </li></ul><sql:setDataSource var=&quot;example&quot; driver=“org.hsqldb.jdbcDriver&quot; url=&quot;jdbc:hsqldb:file:testdb&quot; user=“sa&quot; password=“sa&quot; />
    30. 30. SQL тагове <ul><li>Създаване на SQL заявка </li></ul><sql:query var= &quot; resultSet&quot; dataSource= &quot; ${example}&quot; sql= &quot; SELECT BAND, TITLE FROM SONG WHERE ID=? &quot; > <param value= &quot; 1 &quot; > … </sql:query>
    31. 31. SQL тагове <ul><li>Заявка за промяна на таблица </li></ul><sql:update var= &quot; resultSet&quot; dataSource= &quot; ${example}&quot; sql=&quot;INSERT INTO SONG (BAND, TITLE) VALUES(?, ?)&quot;> <param value= &quot; AC/DC &quot; /> <param value= &quot; T.N.T &quot; /> </sql:update>
    32. 32. JSTL <ul><li>Въпроси? </li></ul>

    ×