Это действительно JSTL . Однако он не встроен, но все, что вам нужно сделать, это просто вставить jstl-1.2.jar в /WEB-INF/lib
и объявить одну из его меток в верхней части страницы JSP согласно документации TLD, например, JSTL ядро :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Таким образом, вы можете использовать в ссылке перечисленные теги. Большинство основных тегов являются просто тегами управления потоком. JSTL также имеет теги XML и SQL , но они предназначены только для быстрого создания прототипов и не должны использоваться в реальном производстве. Затем есть тег Format (fmt) , который отлично подходит для интернационализации и локализации (i18n и l10n). Наконец, есть полезные теги functions (fn) , которые предоставляют простые функции EL.
Тогда есть ${}
вещи. Это называется язык выражения . Он просто получает доступ к «внутренним данным» (атрибутам) в любой из областей страниц, запросов, сеансов и приложений в формате, аналогичном Javabean, с помощью PageContext#findAttribute()
и вызовом Javabean getters . Если вы понимаете скриптлетов , то вы поймете следующий пример:
${user.address.street}
, что примерно разрешается до
<%= pageContext.findAttrubute("user").getAddress().getStreet() %>
EL - это nullsafe . Когда ${user}
или ${user.address}
преобразуется в null
, он просто пропустит все это и ничего не отобразит. В скриптлетах вы бы получили NPE на вложенных вызовах или просто null
на последнем вызове.
Затем существует унифицированный EL, обозначаемый синтаксисом #{}
. Он (пока) используется только в сочетании с JavaServer Faces (JSF) . Он может вызывать Javabean setter в свойстве last . Э.Г.
<h:inputText name="foo" value="#{bean.foo}">
будет за кадром примерно так, как следует
pageContext.findAttribute("bean").setFoo(request.getParameter("foo"));
Кстати, это не технология просмотра . JSP сама по себе уже является технологией просмотра. JSTL - это просто taglib . EL является просто частью спецификации JSP. Другая технология представления, предоставляемая Java EE, - Facelets , основанная на XHTML и обеспечивающая гораздо более бесшовную интеграцию для JSF, чем JSP.