gpt4 book ai didi

jsf-2 - JSF双重提交表单数据

转载 作者:行者123 更新时间:2023-12-02 02:21:05 25 4
gpt4 key购买 nike

我一直困扰着我的 jsf 应用程序(Mojarra 2.1 on Glassfish 3.0.1 with Primefaces 2.1, SSL)的一个难以重现的错误。我怀疑它可能与重复或多次提交同一表格有关,例如当用户双击提交按钮时。

此错误的症状是服务器中断资源文件(javascript、css)的传输,然后页面看起来很奇怪(缺少 css)或无法按预期工作(缺少 js)。

我不确定这是唯一的原因。这很难弄清楚,因为错误偶尔会发生。

有没有办法防止多次提交同一个表单?一个 javascript 解决方案就可以做到。但也许有一个服务器端解决方案,也许是一个特定的 jsf 配置?

最佳答案

在这种特殊情况下,我更喜欢 JavaScript 解决方案而不是服务器端解决方案。服务器端解决方案只会阻止业务逻辑被执行两次。它不会阻止 HTTP 请求被发送两次,也不会阻止资源请求被中止。我认为这不会改变第二次提交时资源损坏的特定问题。

您可以使用 jsf.ajax.addOnEvent 函数对 ajax 请求进行全局 Hook 。这是一个启动示例:

jsf.ajax.addOnEvent(function(data) {
if (data.source.type != "submit") {
return;
}

switch (data.status) {
case "begin":
data.source.disabled = true;
break;
case "complete":
data.source.disabled = false;
break;
}
});

关于jsf-2 - JSF双重提交表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127109/

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