如何在刷新或重新加载页面时禁用重新提交数据

时间:2012-07-19 12:15:45

标签: jsp url struts2 action

我有一个JSP页面,其中有一个按钮,单击此按钮会执行一些操作,该操作会执行一些数据库更新,成功更新后,用户将导航到另一个页面结尾为URL ...\resultpage.action

当我重新加载导航页面resultpage.jsp时,再次调用该操作会再次更新数据库,这是不可取的。

我希望如果用户重新加载此页面,则应刷新页面,并且不应调用更新数据库的操作类。

如何实现呢?此外,如果有任何方法,加载页面后,其URL应该更改?

1 个答案:

答案 0 :(得分:0)

为了避免通过页面刷新重新提交表单的情况,我将创建除标准“成功”之外的结果类型。可能还有其他方法可以做到,但我找到的最简单方法是结果类型redirectAction,它会在成功的数据库更新时返回到相同的操作。

如果使用注释,它看起来像这样:

@Results({
    @Result(name = "success", location = "/WEB-INF/content/registration/index.jsp"),
    @Result(name = "refresh", type = "redirectAction", location = "register")
})

“刷新”结果将在成功(数据库更新)后期操作时返回,而“成功”则用于显示类型操作。