在JSF视图中找不到标识符为的组件

在JSF视图中找不到标识符为的组件,jsf,primefaces,Jsf,Primefaces,我试图用这样的p:growl来显示消息。要在这样的数据表延迟加载的OnRowSelect方法上更新 <p:growl id="applyMessages" showDetail="false" global="true" /> and <p:ajax event="rowSelect" listener="#{editBean.onRowSelect}" update=":studyPlanEditForm:display applyMessages"/> 和

我试图用这样的p:growl来显示消息。要在这样的数据表延迟加载的OnRowSelect方法上更新

<p:growl id="applyMessages" showDetail="false" global="true" /> and     <p:ajax event="rowSelect" listener="#{editBean.onRowSelect}" update=":studyPlanEditForm:display applyMessages"/> 
但是得到了这样的错误 在视图中找不到标识符为“applyMessages”的组件。
请提供帮助。

在浏览器中检查页面的源代码。然后识别
p:growl
标记及其生成的client-id。它肯定比
applyMessages
长,并且有一个类似于
containerID:applyMessages
的前缀。在ajax调用的
update
属性中使用此id。

在呈现页面的视图源中检查applyMessages。可能需要在applyMessages中添加一些前缀,如:YourForm_ID:applyMessages它是否单独工作,如下图所示?update=“:studyPlanEditForm:display”和update=“applyMessages”适用于您,是否会产生任何错误?您好,有趣的是,在视图源中列出了相同id的applyMessages。当我更改更新=“:studyPlanEditForm:display applyMessages”时,将ie applyMessages先排序,然后再显示,获取组件显示的错误消息。请提供帮助。但它是否与
显示
在同一表单中?如果它没有前缀
studyPlanEditForm
,则表示它不在此表单内。顺便问一下,您是否使用
h:form
标记而不是简单的html
?嗨,Matt Handy,表单id是studyPlanEditForm,是的,我正在使用h:form。根据我的经验,使用
p:growl
作为第一个组件是一个很好的做法,因为它不必位于
h:form
中。所以把它放在
h:form
之外,然后用它的id更新它。
update=“:applyMessages”
@user1281029只是一个猜测,你在页面上有嵌套表单吗(表单内部的表单?)无论如何,发布更多的代码。。。