SlideShare a Scribd company logo
JSTL (JavaServer Pages Standard Tag Library) Борислава Спасова Мартин Чиллев
Съдържание JSP  потребителски тагове и библиотеки JSTL тагове Структурни Локализация XML Достъп до бази данни   и  SQL
JSP  потребителски тагове и библиотеки JSP Custom Tags and Tag Libraries
Какво e  потребителски таг ? Потребителските тагове ( custom tags)  са компоненти за многократно използване Всеки разработчик може да ги създаде Могат да се  изтеглят  от  Интернет   ( http://www.jsptags.com ) Позволяват компонентно-ориентирана разработка в уеб приложенията Скриват сложността на визуализацията Разработчиците  се съсредоточават  върху   същината на проекта
Потребителски тагове Потребителските тагове изглеждат като  HTML  тагове Дизайнери и разработчици са свикнали да работят с тях Имат поведение, дефинирано от програмиста Могат да приемат параметри Пример: <myTags:calendar date=&quot;17/12/2006&quot; />
Какво е библиотека с тагове? Библиотеките с тагове ( tag libraries)  са съвкупности от тагове Имат име ( prefix)  и  URI  идентификатор Състоят се от: Интерфейс ( TLD  файлове) XML  базирано описание на таговете Имплементация ( JAR  файлове) Съвкупност от компилирани класове и ресурси
Как да използваме библиотека с тагове? Включваме библиотеката с тагове към уеб приложението Слагаме необходимите  TLD  и  JAR  файлове в  /WEB-INF  и в  /WEB-INF/lib Регистрираме библиотеката с тагове Използваме тагове от библиотеката чрез посочения при регистрацията префикс <%@ 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; />
JSTL (JavaServer Pages Standard Tag Library) Стандартната библиотека с тагове в  JSP  стандарта
Какво е  JSTL? JSTL е стандартна библиотека с тагове Част от JSP 2.0 стандарта JSTL имплементира често използвани  в уеб приложенията  функционалности JSTL Core –  базови (основни)  функции Работа с променливи, условия, цикли , I/O JSTL Format –  ф орматиране   и  i18n Message bundles, числа, дати JSTL XML –  работа с  XML  данни Парсване на  XML ,  XSL  трансформации JSTL SQL –  Работа с бази от данни и  SQL Изпълнение на  SQL  заявки
Защо JSTL? Позволява JSP страниците да съдържат чист XML (JSPX страници) Избягваме употребата на JSP елементи за скриптиране Избягване на Java код в страниците Кодът става по-лесен за четене и поддръжка Спестяваме усилия Ползваме наготово най-често използваната функционалност
JSTL Core Tags
JSTL Core тагове Включване на  JSTL  Core  библиотеката Работа с променливи : <%@ 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; />
Core тагове <c:out> <c:remove> <c:catch> <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>
Core тагове Условни <c:if> <c:choose>, <c:when>, <c:otherwise> <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>
Core тагове Итерация <c:forEach> Итерация върху масив или списък <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>
Core тагове Итерация Итерация върху  Map  обект (например  HashTable ) <c:forEach var='item' items='${map}'>  <c:out value='Key=${item.key} /> <c:out value='Key=${item.value} /> </c:forEach>
Core тагове Създаване на URL с параметри <c:url>  –  построява и encode-ва URL <c:redirect>  –  праща redirect заявка към клиента <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;>
JSTL Formatting and Internationalization Tags
Internationalization тагове Включване на библиотеката за форматиране Предефиниране на текущия locale Предефиниране на кодирането на HTTP заявката <%@ 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;/>
Internationalization  тагове Задаване на файл с текстови   ресурси  (resource bundle) Отпечатване на локализирани съобщения от  resource bundle <fmt:setBundle basename=&quot;Messages&quot; var= &quot; messagesBundle &quot; /> <fmt:bundle basename=&quot;Messages&quot;> <%-- Контекст повлиян от локализацията --%> <fmt:message key=&quot;EnterUserNameMsg&quot; /> </fmt:bundle>
Internationalization  тагове Изкарване на съобщение от ресурсен файл Зареждане на съобщение с параметър <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>
Internationalization  тагове Форматиране на число Форматиране на дата   по шаблона на  java.text.SimpleDateFormat <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;  />
Internationalization  тагове Парсване на число Парсване на дата <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; />
Internationalization  тагове Задаване на времева зона <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>
JSTL XML Tags
JSTL XML тагове Включване на  JSTL  XML  библиотеката Парсване на  XML  низ в променлива: Извеждане на стойност от  XPath  израз от  XML  документ от променливата  catalog : <%@ 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; />
JSTL XML тагове Итериране по  XPath  израз: <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>
JSTL SQL Tags
SQL  тагове Конфигуриране на базата <sql:setDataSource var=&quot;example&quot;   driver=“org.hsqldb.jdbcDriver&quot;   url=&quot;jdbc:hsqldb:file:testdb&quot;   user=“sa&quot;   password=“sa&quot; />
SQL  тагове Създаване на  SQL  заявка <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>
SQL  тагове Заявка за промяна на таблица <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>
JSTL Въпроси?
Ad

More Related Content

Viewers also liked (18)

JavaScript and jQuery Fundamentals
JavaScript and jQuery FundamentalsJavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
BG Java EE Course
 
Java Server Faces (JSF) - advanced
Java Server Faces (JSF) - advancedJava Server Faces (JSF) - advanced
Java Server Faces (JSF) - advanced
BG Java EE Course
 
CSS
CSSCSS
CSS
BG Java EE Course
 
JSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress comingJSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress coming
Andy Schwartz
 
Upcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST supportUpcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST support
Steven Davelaar
 
Building Highly Reusable Taskflows
Building Highly Reusable TaskflowsBuilding Highly Reusable Taskflows
Building Highly Reusable Taskflows
Steven Davelaar
 
HTML Fundamentals
HTML FundamentalsHTML Fundamentals
HTML Fundamentals
BG Java EE Course
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
Steven Davelaar
 
Rich faces
Rich facesRich faces
Rich faces
BG Java EE Course
 
JSP Custom Tags
JSP Custom TagsJSP Custom Tags
JSP Custom Tags
BG Java EE Course
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
BG Java EE Course
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction
Steven Davelaar
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
BG Java EE Course
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
BG Java EE Course
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketComparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Matt Raible
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
Mario Jorge Pereira
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server Faces
Alphorm
 
JavaScript and jQuery Fundamentals
JavaScript and jQuery FundamentalsJavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
BG Java EE Course
 
Java Server Faces (JSF) - advanced
Java Server Faces (JSF) - advancedJava Server Faces (JSF) - advanced
Java Server Faces (JSF) - advanced
BG Java EE Course
 
JSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress comingJSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress coming
Andy Schwartz
 
Upcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST supportUpcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST support
Steven Davelaar
 
Building Highly Reusable Taskflows
Building Highly Reusable TaskflowsBuilding Highly Reusable Taskflows
Building Highly Reusable Taskflows
Steven Davelaar
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction
Steven Davelaar
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
BG Java EE Course
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketComparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Matt Raible
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server Faces
Alphorm
 

Similar to JSTL (20)

JavaScipt and AJAX Programming
JavaScipt and AJAX ProgrammingJavaScipt and AJAX Programming
JavaScipt and AJAX Programming
LogMan Graduate School on Knowledge Economy
 
Web Programming with JavaScript and Ajax
Web Programming with JavaScript and AjaxWeb Programming with JavaScript and Ajax
Web Programming with JavaScript and Ajax
LogMan Graduate School on Knowledge Economy
 
Web applications with Catalyst BG
Web applications with Catalyst BGWeb applications with Catalyst BG
Web applications with Catalyst BG
svilen.ivanov
 
SEO и архитектура на сайт
SEO и архитектура на сайтSEO и архитектура на сайт
SEO и архитектура на сайт
Васил Тошков
 
XML and Web Programming
XML and Web ProgrammingXML and Web Programming
XML and Web Programming
LogMan Graduate School on Knowledge Economy
 
BARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George PenkovBARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George Penkov
Svetlin Nakov
 
Html & css improved
Html & css   improvedHtml & css   improved
Html & css improved
Vladimir Valkov
 
Xhtml
XhtmlXhtml
Xhtml
sa6o
 
Html presentation
Html presentationHtml presentation
Html presentation
fleexy
 
Xml language
Xml languageXml language
Xml language
TU-Sofia
 
Стар проект на Благо?!
Стар проект на Благо?!Стар проект на Благо?!
Стар проект на Благо?!
Благовѣстъ Петровъ
 
изработка на сайт
изработка на сайтизработка на сайт
изработка на сайт
plvasileva90
 
Izrabotka na site
Izrabotka na siteIzrabotka na site
Izrabotka na site
yordanita
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13
DAVID Academy
 
Web applications with Catalyst BG
Web applications with Catalyst BGWeb applications with Catalyst BG
Web applications with Catalyst BG
svilen.ivanov
 
SEO и архитектура на сайт
SEO и архитектура на сайтSEO и архитектура на сайт
SEO и архитектура на сайт
Васил Тошков
 
BARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George PenkovBARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George Penkov
Svetlin Nakov
 
Xhtml
XhtmlXhtml
Xhtml
sa6o
 
Html presentation
Html presentationHtml presentation
Html presentation
fleexy
 
Xml language
Xml languageXml language
Xml language
TU-Sofia
 
изработка на сайт
изработка на сайтизработка на сайт
изработка на сайт
plvasileva90
 
Izrabotka na site
Izrabotka na siteIzrabotka na site
Izrabotka na site
yordanita
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13
DAVID Academy
 
Ad

More from BG Java EE Course (19)

HTML: Tables and Forms
HTML: Tables and FormsHTML: Tables and Forms
HTML: Tables and Forms
BG Java EE Course
 
WWW and HTTP
WWW and HTTPWWW and HTTP
WWW and HTTP
BG Java EE Course
 
Creating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSSCreating Web Sites with HTML and CSS
Creating Web Sites with HTML and CSS
BG Java EE Course
 
Processing XML with Java
Processing XML with JavaProcessing XML with Java
Processing XML with Java
BG Java EE Course
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
BG Java EE Course
 
Data Access with JDBC
Data Access with JDBCData Access with JDBC
Data Access with JDBC
BG Java EE Course
 
Introduction to-sql
Introduction to-sqlIntroduction to-sql
Introduction to-sql
BG Java EE Course
 
Introduction to-RDBMS-systems
Introduction to-RDBMS-systemsIntroduction to-RDBMS-systems
Introduction to-RDBMS-systems
BG Java EE Course
 
Basic data-structures-v.1.1
Basic data-structures-v.1.1Basic data-structures-v.1.1
Basic data-structures-v.1.1
BG Java EE Course
 
Basic input-output-v.1.1
Basic input-output-v.1.1Basic input-output-v.1.1
Basic input-output-v.1.1
BG Java EE Course
 
Strings v.1.1
Strings v.1.1Strings v.1.1
Strings v.1.1
BG Java EE Course
 
Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
BG Java EE Course
 
Inheritance and Polymorphism
Inheritance and PolymorphismInheritance and Polymorphism
Inheritance and Polymorphism
BG Java EE Course
 
Defining classes-and-objects-1.0
Defining classes-and-objects-1.0Defining classes-and-objects-1.0
Defining classes-and-objects-1.0
BG Java EE Course
 
Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0
BG Java EE Course
 
Algorithms with-java-1.0
Algorithms with-java-1.0Algorithms with-java-1.0
Algorithms with-java-1.0
BG Java EE Course
 
Methods intro-1.0
Methods intro-1.0Methods intro-1.0
Methods intro-1.0
BG Java EE Course
 
Introduction to-programming
Introduction to-programmingIntroduction to-programming
Introduction to-programming
BG Java EE Course
 
Java platform
Java platformJava platform
Java platform
BG Java EE Course
 
Ad

JSTL

  • 1. JSTL (JavaServer Pages Standard Tag Library) Борислава Спасова Мартин Чиллев
  • 2. Съдържание JSP потребителски тагове и библиотеки JSTL тагове Структурни Локализация XML Достъп до бази данни и SQL
  • 3. JSP потребителски тагове и библиотеки JSP Custom Tags and Tag Libraries
  • 4. Какво e потребителски таг ? Потребителските тагове ( custom tags) са компоненти за многократно използване Всеки разработчик може да ги създаде Могат да се изтеглят от Интернет ( http://www.jsptags.com ) Позволяват компонентно-ориентирана разработка в уеб приложенията Скриват сложността на визуализацията Разработчиците се съсредоточават върху същината на проекта
  • 5. Потребителски тагове Потребителските тагове изглеждат като HTML тагове Дизайнери и разработчици са свикнали да работят с тях Имат поведение, дефинирано от програмиста Могат да приемат параметри Пример: <myTags:calendar date=&quot;17/12/2006&quot; />
  • 6. Какво е библиотека с тагове? Библиотеките с тагове ( tag libraries) са съвкупности от тагове Имат име ( prefix) и URI идентификатор Състоят се от: Интерфейс ( TLD файлове) XML базирано описание на таговете Имплементация ( JAR файлове) Съвкупност от компилирани класове и ресурси
  • 7. Как да използваме библиотека с тагове? Включваме библиотеката с тагове към уеб приложението Слагаме необходимите TLD и JAR файлове в /WEB-INF и в /WEB-INF/lib Регистрираме библиотеката с тагове Използваме тагове от библиотеката чрез посочения при регистрацията префикс <%@ 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. JSTL (JavaServer Pages Standard Tag Library) Стандартната библиотека с тагове в JSP стандарта
  • 9. Какво е JSTL? JSTL е стандартна библиотека с тагове Част от JSP 2.0 стандарта JSTL имплементира често използвани в уеб приложенията функционалности JSTL Core – базови (основни) функции Работа с променливи, условия, цикли , I/O JSTL Format – ф орматиране и i18n Message bundles, числа, дати JSTL XML – работа с XML данни Парсване на XML , XSL трансформации JSTL SQL – Работа с бази от данни и SQL Изпълнение на SQL заявки
  • 10. Защо JSTL? Позволява JSP страниците да съдържат чист XML (JSPX страници) Избягваме употребата на JSP елементи за скриптиране Избягване на Java код в страниците Кодът става по-лесен за четене и поддръжка Спестяваме усилия Ползваме наготово най-често използваната функционалност
  • 12. JSTL Core тагове Включване на JSTL Core библиотеката Работа с променливи : <%@ 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. Core тагове <c:out> <c:remove> <c:catch> <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. Core тагове Условни <c:if> <c:choose>, <c:when>, <c:otherwise> <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. Core тагове Итерация <c:forEach> Итерация върху масив или списък <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. Core тагове Итерация Итерация върху Map обект (например HashTable ) <c:forEach var='item' items='${map}'> <c:out value='Key=${item.key} /> <c:out value='Key=${item.value} /> </c:forEach>
  • 17. Core тагове Създаване на URL с параметри <c:url> – построява и encode-ва URL <c:redirect> – праща redirect заявка към клиента <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. JSTL Formatting and Internationalization Tags
  • 19. Internationalization тагове Включване на библиотеката за форматиране Предефиниране на текущия locale Предефиниране на кодирането на HTTP заявката <%@ 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. Internationalization тагове Задаване на файл с текстови ресурси (resource bundle) Отпечатване на локализирани съобщения от resource bundle <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. Internationalization тагове Изкарване на съобщение от ресурсен файл Зареждане на съобщение с параметър <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. Internationalization тагове Форматиране на число Форматиране на дата по шаблона на java.text.SimpleDateFormat <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. Internationalization тагове Парсване на число Парсване на дата <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. Internationalization тагове Задаване на времева зона <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>
  • 26. JSTL XML тагове Включване на JSTL XML библиотеката Парсване на XML низ в променлива: Извеждане на стойност от XPath израз от XML документ от променливата catalog : <%@ 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. JSTL XML тагове Итериране по XPath израз: <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>
  • 29. SQL тагове Конфигуриране на базата <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. SQL тагове Създаване на SQL заявка <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. SQL тагове Заявка за промяна на таблица <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>

Editor's Notes

  • #3: ## * * 07/16/96
  • #5: ## * * 07/16/96
  • #13: ## * * 07/16/96
  • #14: ## * * 07/16/96
  • #15: ## * * 07/16/96
  • #16: ## * * 07/16/96
  • #17: ## * * 07/16/96
  • #18: ## * * 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 &apos;Refresh: 10; url=http://www.mysite.com/otherpage.php&apos; – client redirect header
  • #27: ## * * 07/16/96
  • #28: ## * * 07/16/96
  • #33: ## * * 07/16/96