Your SlideShare is downloading. ×
0
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
JSTL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JSTL

1,942

Published on

Presentation about JavaServer Pages Standard Tag Library (JSTL).

Presentation about JavaServer Pages Standard Tag Library (JSTL).

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,942
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
93
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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
  • Transcript

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

    ×