javascript - 我可以在非 ajax primefaces 操作的文件响应后执行 javascript 吗?
问题描述
我的 primefaces 应用程序中有一个表单,它从支持 bean 调用一个动作,该动作响应一个文件,供用户使用 outputStream 下载。
在客户端,我有一个带有 onclick 事件处理程序的假提交命令按钮,它触发显示微调器的 javascript,然后单击一个隐藏的“实际”提交命令按钮,该按钮调用以文件响应的支持 bean 操作。
收到回复后,我想隐藏微调器。
我知道如果我希望服务器响应文件,我必须使用 ajax=false。但是我不能使用一个完整的监听器。
一旦我在客户端得到响应,这里是否有任何解决方案/解决方法可以触发一些 javascript?我在网上找到了一些旧论坛帖子,但没有一个包含可行的。
// The buttons and spinner
<i class="fa fa-spin fa-spinner" id="spinner" style="display:none;"/>
<p:commandButton widgetVar="fakeSubmitButton" type="button" value="Submit" onclick="submit9);" ajax="false" />
<p:commandButton widgetVar="actualSubmitButton" type="submit" action="#{testController.respondWithFile}" value="" style="display:none;" ajax="false"/>
// ... and the two javascript functions
function submitReport() {
$('#spinner').show();
PF('actualSubmitButton').getJQ().click();
}
function postSubmitReport() {
$('#spinner').hide();
}
// ... and on the server side I respond with a file by grabbing the ExternalContext from the FacesContext and using its outputStream.
解决方案
如果有更好的选择,我仍然想听听它们,但是我想出了一种方法来实现我想要的行为,方法是使用类似于展示示例的 ap:fileDownload:https ://www.primefaces.org/showcase/ ui/file/download.xhtml。在服务器端,我的代码相对没有变化,除了使用 ExternalContext 的输出流返回响应文件之外,我正在构建一个 StreamedContent,它从 fileDownload 小部件调用的函数返回。
推荐阅读
- opencv - Open CV Haar 级联训练无法训练
- python - python中神经网络循环的多次迭代
- windows - 我的球拍方案命令行在 Windows Powershell 中无法正常工作,我做错了什么
- r - R 马尔可夫链的可视化 | 手动更改转换矩阵中的值
- backup - Jira backup files being automatically created every 3 hours
- visual-studio-code - 使用“Missing auto-load debug_gdb_scripts”调试 Rust 时出现 Visual Studio Code 错误
- amazon-web-services - custom tag on EBS volume provisioned dynamically by Kubernetes
- swagger - Hippo REST API 中的 Swagger 支持
- java - Not able to get current user particular value
- java - logback 没有在 spring mvc 中创建日志文件