410013796724260
• Webmoney
R335386147728
Z369087728698
Стандартные JSF componentsСтандартные JSF componets разделены на две части: базовые компоненты JSF и HTML компоненты JSF. В таблице представлены по колонкам базовые и HTML компоненты. Базовые компоненты JSFК базовым относятся компоненты JSF, которые не связаны с рендерингом страницы HTML или с каким-либо другим механизмом отображения информации. Среди прочего они используются для преобразования типов и проверка допустимости значений. f:actionListenerТег определяет выполнение метода действия слушателя processAction(), определяемый атрибутом type тега. Значение атрибута type должно быть полностью определенным (квалифицированным) именем класса, реализующего интерфейс javax.faces.event.ActionListener. Этот тег обычно является дочерним тегом h:commandButton или h:commandLink. Когда пользователь щелкает по родительскому компоненту, метод processAction() объявленной реализации ActionListener выполняется автоматически.
<h:commandButton action="save" value="Сохранить">
<f:actionListener type="com.test.CustomActionListener" />
</h:commandButton>
f:ajaxТег определяет поведение AJAX. Этот тег обычно вкладывается в другой тег JSF типа h:commandButton. Значением атрибута execute является разделенный пробелами список идентификаторов компонентов, которые будут использоваться в качестве входных при запуске запроса AJAX. Значением атрибута render является разделенный пробелами список компонентов для повторного отображения, после того как запрос AJAX будет завершен.
<h:commandButton actionListener="#{bean.calculate}">
<f:ajax execute="first second" render="sum" />
</h:commandButton>
f:attributeТег устанавливает атрибут родительского компонента с ключом, определенным атрибутом name тега и значением, определенным атрибутом value тега. Все атрибуты компонента позже могут быть получены программно, как структура данных — карта Map, вызовом метода getAttributes() соответствующего экземпляра javax.faces.component.UIComponent. Этот тег часто используется в сочетании с классом f:actionListener, чтобы передать параметру методу действия слушателя.
<h:commandButton action="save" value="Save">
<f:actionListener type="com.test.CustomActionListener" />
<f:attribute name="attributeName" value="someValue" />
</h:commandButton>
f:convertDateTimeТег используется для преобразования значения родительского компонента в экземпляр java.util.Date. Этот тег позволяет присваивать правильно отформатированную строку, вводимую пользователем, полю даты в управляемом бине.
<h:inputText value="#{user.birthday}">
<f:convertDateTime dateStyle="short" />
</h:inputText>
Пример использования конвертера convertDateTime рассмотрен на странице Валидаторы и конвертеры. f:converterРегистрация преобразователя пользователя, указанныго атрибутом converterId тега, в родительском теге. Преобразователь должен представлять собой класс, реализующий интерфейс javax.faces.convert.Converter, и быть или декорированным аннотацией @FacesConverter, или зарегистрированным в дескрипторе конфигурации приложения, файле faces-config.xml, с помощью тега converter.
<h:inputText value="#{user.phone}">
<f:converter converterId="PhoneConverter" />
</h:inputText>
f:convertNumberПреобразование значения родительского компонента в экземпляр java.lang.Number. Данный тег позволяет правильно отформатировать строку, вводимую пользователем и присваиваемую числовому полю в управляемом бине.
<h:inputText value="#{user.age}">
<f:convertNumber />
</h:inputText>
Пример использования конвертера convertNumber рассмотрен на странице Валидаторы и конвертеры. f:eventТег вызова метода компонента JavaBean при возникновении конкретного события. Этот тег вкладывается в другой тег JSF. Регистрируемое событие указывается в качестве значения атрибута type тега f:event. Для тега допустимы следующие значения:
Значение атрибута listener тега f:event должно указывать на метод, который определен в управляемом бине и удовлетворяет следующим требованиям: имеет модификатор видимости public, не возвращаетни какого значения и принимает экземпляр класса javax.faces.event.ComponentSystemEvent в качестве своего единственного параметра.
<h:inputText>
<f:event type="preRenderComponent"
listener="#{myBean.doSomething}" />
</h:inputText>
f:facetРегистрация фасета на родительском компоненте. Фасет (facet) - это специальный дочерний компонент, к которому можно получить доступ с помощью метода UIComponent.getFacet. Этот метод может быть переопределен для пользовательских компонентов; данное обстоятельство позволяет иначе обрабатывать компоненты в фасете. Например, у стандартного тега h:dataTable может быть фасет, называемый "header", который будет использоваться для представления всех компонентов в теге f:facet в качестве заголовка представленной HTML-таблицы.
<h:dataTable value="#{order.items}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Number" />
</f:facet>
<h:outputText value="#{item.itemNumber}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{item.itemDescription}" />
</h:column>
</h:dataTable>
f:loadBundleЗагрузка пакета ресурса в контекст запроса. Имя пакета ресурса определяется атрибутом basename. Переменная пакета ресурса для использования определяется атрибутом var тега.
<f:view locale="#{facesContext.externalContext.request.locale}">
<f:loadBundle basename="com.test.Messages" var="mess" />
<h:outputText value="#{mess.helloWorld}" />
</f:view>
f:metadataДанный тег является родительским для тега f:viewParam, который используется для отображения параметров GET-запроса на значения управляемого бина.
<f:metadata>
<f:viewParam name="someParam" value="bean.someProp" />
</f:metadata>
f:paramТег используется как дочерний с тегами h:commandLink и h:outputForm. Для тега h:commandLink, он генерирует параметр запроса, определенный его атрибутами name и value. Для тега h:outputForm он определяет подстановочное значение атрибута value.
<h:outputFormat value="Hello, {0}!" >
<f:param value="#{user.name}" />
</h:outputFormat>
f:phaseListenerРегистрация слушателя на текущей странице. Слушатель должен быть экземпляром класса, реализующего интерфейс javax.faces.event.PhaseListener.
<f:view>
<f:phaseListener type="com.test.CustomPhaseListener" />
</f:view>
f:selectItemТег используется в качестве дочернего компонента для тегов h:selectManyCheckBox, h:selectManyListBox, h:selectManyMenu, h:selectOneListBox, h:selectOneMenu и h:selectOneRadio. Добавляет элемент выбора родительскому компоненту.
<h:selectManyCheckbox value="#{order.items}" >
<f:selectItem itemValue="#{item1}" itemLabel="Keyboard" />
<f:selectItem itemValue="#{item1}" itemLabel="Mouse" />
</h:selectManyCheckbox>
f:selectItemsДобавляет набор выбираемых элементов родительскому компоненту. Атрибут тега value должен быть значением выражения, разрешающимся в массив или список обьектов javax.faces.model.SelectItem. xml
<h:selectManyCheckbox value="#{order.items}" >
<f:selectItems value="#{valueContainer.allItems}" />
</h:selectManyCheckbox>
f:setPropertyActionListenerМожет быть дочерним тегов h:commandLink или h:commandButton. При возникновении события типа Click по кнопке или ссылке, тег устанавливает значение атрибута в управляемом компоненте JavaBean, определенном в target с помощью значения value.
<h:commandButton value="Save" action="#{bean.save}">
<f:setPropertyActionListener target="#{order.ownerId}"
value="#{user.userId}" />
</h:commandButton>
f:subviewТег f:subview предназначен для использования JSP в качестве представления. Включение JSP-страницы выполняется с помощью тега jsp:include или JSTL-тега c:import
<f:view>
<div>
<f:subview id="form">
<jsp:include page="menu.jsp" />
</f:subview>
</div>
</f:view>
f:validateBeanПодключение или отключение тонкой настройки компонента JavaBean.
<h:inputText value="#{someBean.someProperty}">
<f:validateBean disabled="#{anotherBean.someProperty}" />
</h:inputText>
f:validateDoubleRangeПроверка выполнения условия нахождения значения экземпляра типа java.lang.Double в диапазоне, определенном атрибутами minimum и maximum.
<h:inputText value="#{item.price}">
<f:validateDoubleRange minimum="1.0" maximum="10.0" />
</h:inputText>
f:validateLengthПроверка введеной строки, чтобы размера находился в диапазоне между значениями, определенными атрибутами minimum и maximum.
<h:inputText label="Name" value="#{orderItem.name}" required="true">
<f:validateLength minimum="2" maximum="20" />
</h:inputText>
f:validateLongRangeПроверка выполнения условия нахождения значения экземпляра типа java.lang.Long в диапазоне, определенном атрибутами minimum и maximum.
<h:inputText value="#{orderItem.quantity}">
<f:validateLongRange minimum="1" maximum="100" />
</h:inputText>
f:validateRegexПроверка значения родительского компонента на соответствие регулярному выражению, указанному в его атрибуте pattern.
<h:inputText value="#{user.phoneNumber}">
<f:validateRegex pattern="\d{3}-\d{3}-\d{4}" />
</h:inputText>
f:validateRequiredПроверка значение родительского компонента (inputText). Тег эквивалентен установке атрибута required в значение true в компоненте ввода.
<h:inputText value="#{user.login}">
<f:validateRequired />
</h:inputText>
f:validatorПроверка значения родительского компонента с использованием компонента JavaBean верификации, реализующего интерфейс javax.faces.validator.Validator. Компонент проверки должен быть или аннотирован @FacesValidator, или обьявлен в дескрипторе конфигурации приложения - файл faces-config.xml.
<h:inputText label="Email" value="#{user.email}">
<f:validator validatorId="emailValidator" />
</h:inputText>
f:valueChangeListenerПодключение слушателя внесения изменения в значение родительского компонента. Слушатель должен реализовать интерфейс javax.faces.event.ValueChangeListener, включающего метод processValueChange(), который выполняется, если значение родительского компонента изменяется.
<h:inputText value="#{orderItem.quantity}">
<f:valueChangeListener type="com.test.CustomValueChangeListener" />
</h:inputText>
f:verbatimСодержимое тега передается без изменений в отображаемую страницу. До версии JSF 1.2 не рекомендовалось помещать HTML-теги внутри JSF-тега f:view, так как они иногда неправильно отображались. Обходным решением стало помещение стандартных HTML-тегов в теги f:verbatim. Начиная с JSF 1.2, а также при использовании Facelets этот тег является избыточным, поскольку теперь можно безопасно помещать стандартные HTML-теги в JSF-теги страницы.
<f:view>
<f:verbatim><p></f:verbatim>
Данный текст размещен внутри HTML-тегов "<p></p>"
<f:verbatim></p></f:verbatim>
</f:view>
f:viewРодительский тег для всех стандартных и пользовательских тегов JSF.
<f:view>
<h:outputText
escape="true"
value="Все JSF компоненты размещаются
только внутри тега f:view" />
</f:view>
f:viewParamЭтот тег используется для установления связи параметра HTTP-запроса GET со свойством управляемого бина. Значение атрибута name должно соответствовать наименованию параметра, а значение value определяется выражением, соответствующим значению управляемого компонента JavaBean.
<f:metadata>
<f:viewParam name="someName"
value="#{bean.property}" />
</f:metadata>
HTML-компоненты JSFHTML-компоненты отвечают за рендеринг разметки результирующей WEB страницы. h:bodyОпределение тела страницы. Стандартный html-тег body <h:body bgcolor="white"> <h3>JSF 2.0 Hello World Example</h3> <h4>Welcome </h4> </h:body> h:buttonПодобен тегу h:commandButton. Нажатие на кнопку генерируют HTTP-запрос GET. h:columnТег h:column вкладывается в тег h:dataTable и определяет столбец в таблице.
<h:form>
<h:inputText label="Name" value="#{user.name}" />
<h:commandButton action="Save" value="Click and Save" />
</h:form>
h:commandButtonОтображение на странице HTML кнопки (submit).
<h:form>
<h:inputText label="Name" value="#{user.name}" />
<h:commandButton action="save" value="Save" />
</h:form>
h:commandLinkОтображение на странице HTML ссылки, которая отправляет серверу форму, определенную тегом h:form
<h:form>
<h:inputText label="Name" value="#{user.name}" />
<h:commandLink action="save" value="Save" />
</h:form>
h:dataTableДинамическое формирование таблицы на основе коллекции данных, которая определяется атрибутом value.
<h:dataTable value="#{Order.items}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Number" />
</f:facet>
<h:outputText value="#{item.itemNumber}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{item.itemDescription}" />
</h:column>
</h:dataTable>
h:formСоздание HTML-формы на странице.
<h:form>
<h:inputText value="#{helloBean.name}"</h:inputText>
<h:commandButton value="Welcome Me" action="welcome"></h:commandButton>
</h:form>
h:graphicImageРазмещение на странице изображения. <h:graphicImage value="http://www.java2s.com/jsf.png"/> <!-- is rendered into the following HTML tag. --> <img src="http://www.java2s.com/jsf.png" /> h:headОпределение стандартного HTML-тега head. <h:head> <title>JSF 2.0 Hello World</title> </h:head> h:inputHiddenРазмещение скрытого поля на странице HTML.
<h:inputHidden value="Hello World" id="hiddenField" />
<!-- is rendered into the following HTML tag. -->
<input id="jsfForm:hiddenField" type="hidden"
name="jsfForm:hiddenField"
value="Hello World" />
h:inputSecretПоле ввода input типа password для определения пароля. <h:inputSecret value="password" /> <!-- is rendered into --> <input type="password" value="password" /> h:inputTextПоле ввода текстовой строки input.
<h:inputText id="loginField" value="#{user.login}" />
h:inputTextareaПоле ввода текста textarea. <h:inputTextarea rows="10" cols="10" value="Hello World!" readonly="true"/> <!-- is rendered into --> <textarea readonly="readonly"> Hello World!</textarea> h:linkh:link подобен тегу h:commandLink. Ссылка тега вызывает HTTP-запрос GET при переходе к целевой странице. <h:link value="Page 1" outcome="wellcome" /> <!-- is rendered into the following HTML code --> <a href="wellcome.xhtml">Page 1</a> h:messageОтображение сообщения для компонента, который имеет атрибут id для определения идентификатора. Тег использует идентификатор компонента в качестве атрибута for.
<table>
<tr><td><h:inputText id="loginField"
value="#{user.login}"
required="true" /></td>
<td><h:message style="color:red"
for="loginField" /></td></tr>
</table>
h:messagesТег h:messages выводит сообщения с использованием HTML компонента <ul> <h:messages style="color:red;margin:8px;" /> <!-- Если пользователь введет в поле UserName больше чем 16 символов и и в поле Password больше чем 8 символов --> <ul style="color:red;margin:8px;"> <li>UserName: Validation Error: Length is greater than allowable maximum of '16' </li> <li>Password: Validation Error: Length is less than allowable minimum of '6' </li> </ul> h:outputFormatПредставление параметризованного текста с атрибутом value. Тег напоминает использование MessageFormat. В тексте атрибута value целочисленные значения, обрамленные фигурными скобками, заменяются на значения параметров, определенное в дочернем элементе f:param.
<h:outputFormat value="Hello, {0}!">
<f:param value="#{user.nickName}" />
</h:outputFormat>
h:outputLabelПредставление метки "label" на странице. Стиль представления можно определить при помощи атрибутов style или styleClass. Компонент метки связан с другим компонентом посредством определения тега "for".
<h:outputLabel for="username"
value="#{messages.labelUserName} " />
<h:inputText id="username" value="#{beanUser.userName}" />
h:outputLinkПредставление HTML-ссылки в виде anchor-элемента.
<h:outputLink value="http://yandex.ru">
<h:outputText value="Поисковый сайт Yandex" />
</h:outputLink>
<!-- is rendered into the following HTML tag. -->
<a href="http://yandex.ru">Поисковый сайт Yandex</a>
h:outputScriptЗагрузка файла с JavaScript'ами. По умолчанию файл рамещается в одной из поддиректорий resources. <!-- Загрузка файла help.js из директории resources/js/ ---> <h:outputScript library="js" name="help.js" /> h:outputStylesheetЗагрузка файла со стилями CSS. По умолчанию файл рамещается в одной из поддиректорий resources. <!-- Загрузка файла styles.css из директории resources/css/ ---> <h:outputStylesheet library="css" name="styles.css" /> h:outputTextТег представляет на странице HTML элемент span со значением атрибута value, если в теге определены атрибуты style или styleClass. В противном случае значение, определенное атрибутом тега value, отображается так, чтобы можно было игнорировать символы XML/HTML. При значении атрибута escape равным false символы XML/HTML не игнорируются.
<h:outputText value="<h1>Киса Воробьянинов</h1>" escape="false"/>
<h:outputText value="#{user.login}" />
h:panelGridПредставление информации на странице HTML в табличном виде. Число столбцов в таблице определяется значением атрибута тега columns. Стиль представления информации в колонках таблицы определяется значением атрибута columnClasses для каждой колонки.
<h:panelGrid columns="2" columnClasses="rightAlign, leftAlign">
<h:outputText value="Пользователь" />
<h:inputText value="#{user.name}" required="true" >
<f:validateLength minimum="3" maximum="32" />
</h:inputText>
<h:outputText value="Логин" />
<h:inputText value="#{user.login}"required="true" >
<f:validateLength minimum="4" maximum="8" />
</h:inputText>
</h:panelGrid>
h:panelGroupТег используется для группировки дочерних компонентов в единую область представления. Значением атрибута rendered можно управлять представлением компонентов тега h:panelGroup. Если значение атрибута false, то компоненты на странице не отображаются.
<h:panelGroup rendered="#{beanUser.user != null}">
<h:inputText label="#{messages.labelUserName}" id="username"
value="#{beanUser.user.username}" required="true" />
<h:message for="username" errorClass="error" />
</h:panelGroup>
h:selectOneRadioПредставление связанных переключателей типа radio. Подобно тегу selectManyCheckbox поддерживает вертикальную или горизонтальную схему представления дочерних компонентов selectItem. Для этого необходимо использовать атрибут layout, определяющий значения : lineDirection (горизонтальное) или pageDirection (вертикальное).
<h:selectOneRadio id="subscriptions" layout="pageDirection"
value="#{subscriptionController.subscriptions}">
<f:selectItem id="item1" itemLabel="Новости" itemValue="1" />
<f:selectItem id="item2" itemLabel="Спорт" itemValue="2" />
<f:selectItem id="item3" itemLabel="Музыка" itemValue="3" />
<f:selectItem id="item4" itemLabel="Интернет" itemValue="4" />
</h:selectOneRadio>
h:selectBooleanCheckboxПредставление поля ввода типа "checkbox". Значение атрибута value тега связывается c булевым свойством в компоненте JavaBean. <h:selectBooleanCheckbox value="user.newsLetters" /> <h:outputText value="Регулярное получение новостей" /> h:selectManyCheckboxПредставление связанных флажков. Атрибут layout определяет горизонтальное (lineDirection) или вертикальное (pageDirection) размещение компонентов.
<h:selectManyCheckbox id="subscriptions" layout="pageDirection"
value="#{subscriptionController.subscriptions}">
<f:selectItem id="item1" itemLabel="Новости" itemValue="1" />
<f:selectItem id="item2" itemLabel="Спорт" itemValue="2" />
<f:selectItem id="item3" itemLabel="Музыка" itemValue="3" />
</h:selectManyCheckbox>
h:selectManyListboxПредставление поля выбора "select", допускающего множественный выбор. Число элементов, одновременно выводимое на экран, устанавливается атрибутом тега size.
<h:selectManyListbox id="subscriptions" value="#{news.items}">
<f:selectItems value="#{news.allItems}" />
</h:selectManyListbox>
h:selectManyMenuПредставление поля выбора "select", допускающего множественный выбор. Тег идентичен h:selectManyListBox за исключением того, что он всегда выводит на экран один элемент за один раз. Поэтому у него нет атрибут size.
<h:selectManyMenu id="order" value="#{order.items}">
<f:selectItems value="#{orderBean.allItems}" />
</h:selectManyMenu>
h:selectOneListboxПредставление поля выбора "select", не допускающего множественный выбор. Значение необязательного атрибута тега "size" определяет количество элементов, отображаемое на странице одновременно. Если атрибут size не используется, то выводятся все элементы.
<h:selectOneListbox value="#{order.items}">
<f:selectItems value="#{orderBean.allItems}" />
</h:selectOneListbox>
h:selectOneMenuПредставление "выпадающего списка меню", предназначенное для отображения поля "select", не допускающего множественного выбора. Только один элемент можно выбрать. Значения для выбора определяются в дочернем теге f:selectItem или f:selectItems.
<h:selectOneMenu id="subscriptions" value="#{subscriptionController.subscriptions}">
<f:selectItem id="item1" itemLabel="Новости" itemValue="1" />
<f:selectItem id="item2" itemLabel="Спорт" itemValue="2" />
<f:selectItem id="item3" itemLabel="Музыка" itemValue="3" />
<f:selectItem id="item4" itemLabel="Интернет" itemValue="4" />
</h:selectOneMenu>
|
