我有两个动作列表并添加。当我从列表操作添加操作时,添加操作已打开。填写表单并提交后,页面将重定向到列表页面并显示已成功添加的消息。 我确实喜欢 我从添加页面和列表页面发送更新true我检查更新true与引用者添加页面网址然后显示成功添加的消息。 但问题是 当我按F5并单击刷新图标时,会再次显示消息。
我想知道我将如何在Struts2中将操作中的信息发送到操作。因此,在单击“引用”图标并按F5后,此信息将被删除。
答案 0 :(得分:0)
这是众所周知的双重提交问题。如果问题只是通过 F5 重新加载,那么最简单的方法就是捕获事件。像这样:
// keep old onkeyup event
var oldwkeyup = window.onkeyup;
window.onkeyup = wkeyup;
function wkeyup(e) {
e = e || window.event;
if (e.keyCode == 116) {// F5
return false;
}
// try to execute the old event
try {
oldwkeyup();
} catch (E) {}
}
或者对jQuery做同样的事。
无论如何,最好的解决方案应该是发布/重定向/获取方法,但为此,您应该改变您在应用程序中执行操作的方式,可能会有点混乱。请查看THIS和THIS。对于 struts ,您有另一个示例HERE。
希望这有帮助。