Java 在primefaces 3.x中更新不同页面上的组件

Java 在primefaces 3.x中更新不同页面上的组件,java,jsf-2,primefaces,Java,Jsf 2,Primefaces,我目前正在将我们的应用程序从primefaces 2.21迁移到3.2。我知道3.2有很多新的变化。我正在尝试用ajax请求更新一个对话框,如下所示 <ui:composition xmlns="http://www.w3.org/1999/xhtml" //namespaces template="MainTemplate.xhtml"> <ui:include src="dlgpath"/> <h:form id="formId"

我目前正在将我们的应用程序从primefaces 2.21迁移到3.2。我知道3.2有很多新的变化。我正在尝试用ajax请求更新一个对话框,如下所示

   <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    //namespaces
   template="MainTemplate.xhtml">
   <ui:include src="dlgpath"/>
   <h:form id="formId">
   <p:datatable id="tab1">
     <p:column> 
     <p:commandButton id="mdf" value="modify" oncomplete="dlg.show();"         
    update="dlgfrmid"/>
     </p:column>
   </datatable>
    </h:form>

下面是该对话框的代码

    <p:dialog  widgetVar="dlg">
      <h:form id="dlgfrmid">
      <p:panelGrid id="gridId"> </p:panelGrid>
      <p:commandButton></p:commandButton>
      </h:form>
       </p:dialog>

在查看错误消息中,我发现“臭名昭著”找不到标识符为“dlgfrmid”的组件 我做了很多搜索,有人能帮我理解PF 3.x中组件引用的概念吗

谢谢 欢迎任何帮助

尝试更改

<p:dialog  widgetVar="dlg">

进入



进入



我遇到了一个类似的问题,我通过在body的html中添加对话框来解决了这个问题

1)您应该在datatable中放置p:column并放置@Daniel我已经完成了所有这些,为没有发布精确的代码表示歉意。我只是想了解update属性将如何更新PF3.x中对话框中的表单。id不好的元素是什么?因为您当前的代码似乎fine@Daniel我已经尝试更新=“:dlgfrmid”了。它不起作用了。仍然收到相同的消息显示的全部内容也尝试采取。。。。从单独的文件中取出并将其放在主页中的后,以查看更新=“:dlgfrmid”是否有效,以及。。。src=“dlgpath”是否有可能是错误的路径?你在视图源中看到它的内容了吗?@Daniel,StepTNT。。非常感谢您的回复。终于奏效了……)不客气!如果组件不在同一名称容器中(如您的情况),请记住在id之前使用
<p:dialog appendToBody="true" widgetVar="dlg">
<p:commandButton id="mdf" value="modify" oncomplete="dlg.show();"         
update="dlgfrmid"/>
<p:commandButton id="mdf" value="modify" oncomplete="dlg.show();"         
update=":dlgfrmid"/>