gpt4 book ai didi

java - 如何使错误页面 (http 500) 在 IceFaces 中工作?

转载 作者:行者123 更新时间:2023-11-30 11:54:47 25 4
gpt4 key购买 nike

使用 Icefaces 2,如果在标准(=非 icefaces)h:commandButton 上执行操作方法期间发生错误,按钮似乎没有操作。没有显示错误页面,尽管它在 web.xml 中配置为这样做。

我可以通过用

包围标签来让它工作
<f:ajax disabled="true">...</f:ajax>

但我想要么从 Icefaces 禁用这个自动 ajax(参见问题 How to disable unsollicited ajax on standard components (h:commandButton) while using Icefaces?),要么让错误页面正常工作。

JSF 实现是 Mojarra 2.1,它随 Glassfish 3.1 一起提供。

最佳答案

基本问题是 Icefaces 捕获提交按钮并将 ajax 放入其中。我认为这完全是一种不良行为:我知道类似的事情可能发生在 ice:commandButton 中甚至在 ice:form 下,但它也发生在 h:commandButton 到 h:form 中。这可以被禁用,根据 http://wiki.icefaces.org/display/ICE/Configuration ,通过在 web.xml 中将 autorender 上下文参数设置为 false。但是,您需要在每个 icefaces 表单上明确启用此行为(否则会出错)。

无论如何,如此处所述:http://wiki.icefaces.org/display/ICE/Handling+Exceptions ,把这段脚本放在页面中基本解决了问题:

                //Assign your error handling function to a variable
var iceErrorCallback = function iceHandleError(statusCode, responseTxt, responseDOM) {
//Handle all errors by simply redirecting to an error page
window.location.href = "./generalError.xhtml";
}

//Safely check if ICEfaces is available
if (ice) {
//Turn off the popups as we plan to handle this ourselves
ice.configuration.disableDefaultIndicators = true;

//Register your error handler as a callback
ice.onServerError(iceErrorCallback);
}

更新:我必须修补一些 Icefaces javascript 才能工作,请参阅 http://jira.icefaces.org/browse/ICE-6546 .我知道正常的 Icefaces 行为是显示一个带有错误的弹出窗口,但这并没有发生。

关于java - 如何使错误页面 (http 500) 在 IceFaces 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417085/

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