复合组件javax.faces.FacesException:在视图中找不到组件“inputID”

时间:2013-04-19 21:02:22

标签: jsf jsf-2 primefaces composite-component mojarra

我有一个复合组件,当在页面中使用一次时效果很好,但如果我多次使用它就不起作用。假设该组件名为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.

我不明白我做错了什么?我已尝试使用cc.attr.id预先填写表单ID,组件ID(field1)。我只是不知道自己需要做什么。

我使用的是mojarra 2.1.13,并且使用的是曲面3.5。任何帮助将非常感激。

谢谢。

编辑:我将binding=....属性添加到我的p:inputText,因为这是导致问题的原因,但我在初始帖子中省略了它。

1 个答案:

答案 0 :(得分:0)

原来是binding属性。删除它会使事情有效,我只需要一种不同的方法来使该字段无效。