【问题标题】:JSF ajax Call ErrorJSF ajax 调用错误
【发布时间】:2013-10-21 10:45:43
【问题描述】:

我收到以下错误:

找不到从“myForm_j_idt32”引用的标识符为“myForm:display”的组件。

我的 xhtml 文件:

<div id="divScreen" align="center">
  <div id="divPage">
    <ui:insert>
      <ui:include src="/banner.xhtml"></ui:include>
    </ui:insert>

    <h:form id="menuBarForm">
      <div id="menubar_link">
        <p:commandLink value="Home" action="#{loginAct.homeNavigation}" style="color: #ffffff;margin-left: 10px;" ajax="false"></p:commandLink>
        <p:commandLink action="#{loginAct.dologout}" style="color: #ffffff;margin-left: 10px;" value="Logout" ajax="false"></p:commandLink>
      </div>
    </h:form>


    <div id="divMnuAndFrm">                
      <div id="divMnuContnr">
        <h:form id="menuForm">
          <p:menu style="width: 94%;" model="#{authMenuModel.model}"></p:menu>
        </h:form>
      </div>

      <div id="divFrmContnrwithmenu">
        <div style="height: 400px; margin: 10px 0px 0px 0px;width: 100%;">
          <h:form id="myForm">                      
            <p:dataTable 
              var="filem" 
              value="#{fileViewManagementPnation.data}" 
              rowKey="#{filem.ftype}"
              paginator="true" rows="10"
              selection="#{fileViewManagementPnation.selectedFile}"
              selectionMode="single"
              emptyMessage="No Files Found"                                      
                                 >  

            <p:ajax event="rowSelect" update="myForm:display" oncomplete="fileDialog.show()"/> 

            <f:facet name="header">  
              :: File Management ::       
            </f:facet>  

            <p:column sortBy="#{filem.ftype}" filterBy="#{filem.ftype}" headerText="FileType">  
              #{filem.ftype}
            </p:column>

            <p:column headerText="Version" sortBy="#{filem.version}">  
              #{filem.version} 
            </p:column>  

            <p:column headerText="Size">  
              #{filem.fsize} 
            </p:column>  

            <p:column headerText="File">              
              Action
            </p:column>  
          </p:dataTable>    


          <p:dialog header="File Details" widgetVar="fileDialog" resizable="false" width="400" 
            showEffect="explode" hideEffect="explode">

            <h:panelGrid id="display" columns="2" cellpadding="4">

              <f:facet name="header_det">
                <p:graphicImage value="/images/gep_logo.gif" />
              </f:facet>

              <h:outputText value="File Name : " />
              <h:outputText value="#{fileViewManagementPnation.selectedFile.ftype}" id="ftype"/>

              <h:outputText value="Size" />
              <h:outputText value="#{fileViewManagementPnation.selectedFile.fsize}" id="size"/>

              <h:outputText value="File Type :" />
              <h:outputText value="#{fileViewManagementPnation.selectedFile.version}" id="version"/>

            </h:panelGrid>
          </p:dialog>
        </h:form> 
      </div>
    </div>       
  </div>     

  <div id="divFooter">
    <p>Developed and Maintained by National Informatics Centre</p>
  </div>
</div>

我在过去两周内尝试让它工作,但仍然没有得到任何答案。 请在这个问题上帮助我。

【问题讨论】:

  • 花点时间输入正确的代码
  • 试试update=":myForm:display" 而不是update="myForm:display"

标签: jsf primefaces


【解决方案1】:

您应该可以使用update=":myForm:display"update="display" 而不是update="myForm:display"

看看NamingContainer in JSF2/Primefaces,它会给你更多的背景信息。这是因为myForm:display 指的是myForm 内的嵌套NamingContainer,称为myForm,但你没有。您要更新的组件直接在同一个 NamingContainer 中,即myForm。因此,只需调用上述方法之一,就可以了。

【讨论】:

    【解决方案2】:

    你没有调用正确的组件。

    您正在调用具有相同表单的组件。

    调用myForm:display 将在当前表单myForm 中查找ID 为myForm 的组件,就像您没有的:myForm:myForm:display 一样。

    因此您不需要指定表单的完整限定名。您可以直接使用组件的 id,如下所示:

    两个组件(调用组件和被调用组件)都在同一个表单中,因此请使用:update="display"

    因此,您可以像上面的示例一样直接调用组件,也可以使用其完整限定名update =":myForm:display" 调用它

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 2011-12-14
      • 2011-05-30
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2014-11-22
      • 2017-02-27
      • 2011-12-16
      相关资源
      最近更新 更多