p:commandButton update在ui:include中不起作用

Rob*_*tis 4 ajax jsf primefaces

我想通过PPR更新页面的一部分.这是我要更新的页面的一部分:

 <h:panelGroup id="aggiungiAuto"
                  rendered="#{!autoBean.operazioneOk}">
        <ui:include src="../component/aggiungi_auto.xhtml"/>
 </h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

虽然这是在aggiungi_auto.xhtml中出现的commandButton

 <p:commandButton value="Submit"
                  update="growl aggiungiAuto aggiungiFoto"
                  actionListener="#{autoBean.insert}"/>
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Bal*_*usC 7

JS/Ajax在客户端工作,而不是在服务器端工作.JSF在服务器端工作,而不是在客户端.当您指示JSF不将组件呈现为HTML时,客户端中不会出现任何内容,因此JS/Ajax将无法找到要刷新/更新的HTML元素.

你需要将它包装在另一个中<h:panelGroup>.

<h:panelGroup id="aggiungiAuto">
    <h:panelGroup rendered="#{!autoBean.operazioneOk}">
        <ui:include src="../component/aggiungi_auto.xhtml"/>
    </h:panelGroup>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

通过这种方式,<span id="aggiuniAuto">始终存在于客户端,所以JS/AJAX将能与JSF生成新的HTML数据进行更新.