下载后无法更新组件。回答15745235无效

Unable to update a component after a download. Answer 15745235 does not work

PS:我试过但是没用。

我有一个 p:commandButton 下载文件:

<p:remoteCommand name="stop" update=":myComponentId" />

<p:commandButton
    value="download"
    ajax="false"
    onclick="PrimeFaces.monitorDownload(null, stop)"
>
    <p:fileDownload 
        value="#{myBean.download()}"
    />
</p:commandButton>

不幸的是,尽管有 myBean 更改(我使用调试器看到它​​),但组件没有更新。我在许多“正常”p:commandButtonupdate 中使用 :myComponentId 没有问题。

我使用的是 Mojarra 2.1.7 和 Primefaces 3.4.1,我无法更新软件:)

我最终使用了一个递归函数,而不是 PrimeFaces.monitorDownload,它调用 stop() 并检查更新后是否存在应该存在的元素。如果不是,它使用 setTimeout 重新调用自己。一个丑陋的把戏,但它有效。

我希望有人能提供更简洁的解决方案。