Составной компонент javax.faces.FacesException: не удается найти компонент inputID в представлении

У меня есть составной компонент, который работает довольно хорошо при использовании один раз на странице, но не работает, если я использую его более одного раза. Допустим, компонент называется 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, поскольку именно он вызывает проблему, но я пропустил его в своем первоначальном сообщении.


person casolorz    schedule 19.04.2013    source источник
comment
Код, опубликованный до сих пор, работает для меня, поэтому он либо неполный, либо вы используете не тот код, который, по вашему мнению, вы используете.   -  person BalusC    schedule 20.04.2013
comment
Вы правы на 100%, мой пример здесь был проще и непровереннее. Пытаясь переместить достаточное количество кода из кода с реальной проблемой в этот пример, чтобы увидеть, когда он создает проблему, мне удалось обнаружить проблему. У меня есть атрибут binding в файле p:inputText. Если я уберу это, то все будет хорошо. Я думаю, имеет смысл, что два компонента не могут связываться с одним и тем же, я просто хочу, чтобы ошибка имела больше смысла. Спасибо, что указали, что это сработало и направило меня на правильный путь.   -  person casolorz    schedule 20.04.2013


Ответы (1)


Оказалось, что это атрибут binding. Удаление этого заставляет вещи работать, мне просто нужен другой способ сделать это поле недействительным.

person casolorz    schedule 20.04.2013