У меня есть составной компонент, который работает очень хорошо, когда используется один раз на странице, но не работает, если я использую его более одного раза. Скажем, компонент называется мой: поле:Компонентный компонент javax.faces.FacesException: Не удается найти компонент «inputID» в поле зрения
<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, а также прямые 3.5. Любая помощь будет очень оценена.
спасибо.
EDIT: Я добавил атрибут binding=....
к моему p:inputText
, так как это вызывает проблему, но я опустил ее в своем первоначальном сообщении.
Код, опубликованный до сих пор, работает для меня, поэтому он либо неполный, либо вы не используете код, который, как вы думаете, работает. – BalusC
Вы на 100% прав, мой пример здесь был проще и непроверен. В попытке переместить достаточно кода из того, который был с реальной проблемой, в этот пример, чтобы увидеть, когда он создает проблему, мне удалось обнаружить проблему. У меня есть атрибут 'binding' на' p: inputText'. Если я выберу это, все будет хорошо. Я предполагаю, что имеет смысл, что два компонента не могут привязываться к одной и той же вещи, я просто хочу, чтобы ошибка имела смысл. Спасибо, что указали, что это сработало и заставило меня на правильном пути. – casolorz