Я нахожусь в процессе создания нового веб-приложения с использованием JSF2.0 в Weblogic 11g. Я использую JSF Ajax для отправки формы. Я довольно новичок в JSF, поэтому все еще изучаю веревки. Главная страница имеет 3 формы на вкладке jQuery. В исходном коде было много повторяющихся полей ввода, таких как userName, пароль и т. Д. (Идентификатор предварялся идентификатором формы, т.е. myform1: userName). Я решил, что было бы неплохо использовать составные компоненты для дублированных полей. Вот мой код компонента:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<composite:interface>
<composite:attribute name="value" required="true"/>
</composite:interface>
<composite:implementation>
<label for="#{cc.id}">User Name</label>
<h:inputText
id="#{cc.id}"
size="15"
value="#{cc.attrs.value}"
required="true"
label="User Name">
</h:inputText>
</composite:implementation>
</html>
А вот вызов компонента в xhtml:
<p>
<cc:userName id="userName" value="#{soapTestingBackingBean.userName}"/>
</p>
Проблема теперь в том, что все мои идентификаторы имеют добавленный элемент, поэтому стали myForm1: userName: userName. Хотя это не ограничитель показа, это означает, что мой javascript теперь должен ссылаться на длинные идентификаторы, а также на мои вызовы Ajax (я обычно выполняю @form, но отображаю определенные элементы). Я пытаюсь сделать код максимально читабельным и понятным. Так что был бы признателен, если бы кто-нибудь знал, есть ли элегантная работа вокруг этого или, может быть, какой-то магический атрибут, который я пропустил, чтобы отключить его. Я экспериментировал с атрибутом forceID из библиотеки tomahawk, но это только вызвало дополнительные проблемы в моих вызовах Ajax. Благодарю.