gpt4 book ai didi

JSF 2 : Ajax errors not displayed

转载 作者:行者123 更新时间:2023-12-04 04:19:24 25 4
gpt4 key购买 nike

我目前正在尝试 ajax 功能,我很好奇如何显示在执行 ajax 时出现的错误消息?
例如,我有一个 primefaces 按钮:

<p:commandButton value="Refresh" update="debugPanel messages" 
action="#{checkbocLabBean.submit}"/>

测试该按钮时,似乎没有任何 react ,直到我检查服务器日志,出现异常。事实证明我有一个错字。应该是#{checkboxLabBean.submit}。

我现在唯一能想到的就是禁用 ajax,在我的情况下添加 ajax="false",错误就会出现。

在使用 ajax 请求时,是否有其他方法可以在开发阶段将错误直接显示到浏览器中?

最佳答案

Ajax 请求是异步发生的。默认情况下,它们不会影响整个文档。 PrimeFaces 的 ajax 请求期间抛出的异常被委托(delegate)给 <p:ajaxStatus> .你可以在 <facet name="error"> 中做你的事.

<p:ajaxStatus>
<f:facet name="start">Loading...</f:facet>
<f:facet name="success"><h:outputText value="" /></f:facet>
<f:facet name="error">An error has occurred!</f:facet>
</p:ajaxStatus>

如果您想用错误页面替换当前文档 - 这是一个非常合理的选择 - 那么很高兴知道 PrimeFaces 在幕后使用 jQuery,并且您可以按如下方式配置 jQuery 来执行此操作:
<script>
jQuery.ajaxSetup({
error: handleXhrError
});

function handleXhrError(xhr) {
document.open();
document.write(xhr.responseText);
document.close();
}
</script>

也可以看看:
  • How to safeguard webapplication on server-side errors?
  • Handling of server-side HTTP errors in jQuery's ajax requests
  • 关于JSF 2 : Ajax errors not displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523991/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com