У меня есть составной компонент, который работает довольно хорошо при использовании один раз на странице, но не работает, если я использую его более одного раза. Допустим, компонент называется my:field:
<composite:implementation>
<h:form id="myForm" prependId="false">
<p:message for="inputID" display="text"/>
<p:inputText binding="#{myBean.valueBind}" id="inputID" value="#{myBean.value}" required="true" />
<p:commandButton process="@form" update="@form" action="#myBean.action} value="Do something" ajax="true"/>
</h:form>
</composite:implementation>
И я использую это так:
<my:field id="field1"/>
Это отлично работает, но если я добавлю это ниже:
<my:field id="field2"/>
Я получаю следующее исключение javax.faces.FacesException: Cannot find component "inputID" in view.
Я не понимаю, что я делаю неправильно? Я попытался добавить идентификатор формы, идентификатор компонента (field1), используя cc.attr.id
. Я просто не знаю, что мне нужно делать.
Я использую mojarra 2.1.13 и Primefaces 3.5. Любая помощь будет очень признательна.
Спасибо.
РЕДАКТИРОВАТЬ: я добавил атрибут binding=....
к моему p:inputText
, поскольку именно он вызывает проблему, но я пропустил его в своем первоначальном сообщении.
binding
в файлеp:inputText
. Если я уберу это, то все будет хорошо. Я думаю, имеет смысл, что два компонента не могут связываться с одним и тем же, я просто хочу, чтобы ошибка имела больше смысла. Спасибо, что указали, что это сработало и направило меня на правильный путь. - person casolorz   schedule 20.04.2013