gpt4 book ai didi

java - Wicket 7 - 向导完成按钮生成多个 onClick 事件

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:20 24 4
gpt4 key购买 nike

我们正在使用 Wicket Wizard 组件。在向导的最后一步,我们发现如果用户快速单击完成按钮,Wicket 会多次调用我们的 onFinish() 方法。这给我们带来了问题。有趣的是,这个问题出现在我们尝试过的所有浏览器(IE、Chrome)中,但 Firefox 中却没有。该浏览器似乎检测到多次点击,并且只向服务器发送一次点击事件。

问题是,我们可以采取什么措施来防止这种情况发生?通过查看 Wicket 框架代码,我可以看到导航按钮包含在 WizardButtonBar 中,并且 FinishButton 正在处理 onClick 事件,但我不确定覆盖或控制此行为的正确方法,并以某种方式检测多个 onClick 事件

最佳答案

您似乎没有使用 Ajax,是吗?

如果你这样做了,你可以只添加面纱 - 例如通过覆盖#getAjaxIndicatorMarkupId() - 任何双重提交都会被阻止。额外的好处:如果用户在向导完成后按下后退按钮,浏览器将离开向导并且用户无法再次完成它。

对于非 Ajax 请求,您必须将自己的 veil JavaScript 添加到按钮。
为了防止用户返回并再次完成向导,您可以使用基于 token 的解决方案:
在向导开始时获取一个 token (可能只是一个计数器)。向导完成后,将 token 标记为已用(例如,将其与域对象一起存储)。
对于向向导发出的每个请求,您可以检查 token 是否仍然有效 - 如果无效,请将用户重定向到另一个页面,说明向导已完成。

关于java - Wicket 7 - 向导完成按钮生成多个 onClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658230/

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