【问题标题】:struts2 double submit problemstruts2 双重提交问题
【发布时间】:2010-07-22 00:08:21
【问题描述】:

我正在使用 struts2.1.8。在这里我想处理双重提交。 truts2 提供了 TokenInterceptor。因此,如果我提交了两次,它会返回“invalid.token”作为结果名称。但我想显示我提交过两次的同一个页面。

【问题讨论】:

    标签: struts2


    【解决方案1】:

    由于您想显示您重复提交的同一页面,因此您需要在您试图防止重复提交的每个 <action> 定义中创建一个 invalid.token 结果:

    <action name="some-action" class="foo.Bar">
        <interceptor-ref name="token"/> 
        <result name="success">/WEB-INF/some/action/success.jsp</result>
        <result name="invalid.token">/WEB-INF/some/action/input.jsp</result>
    </action>
    

    The docs 提供更多信息,您可能还想考虑查看Token Session Interceptor

    【讨论】:

      【解决方案2】:

      您的应用程序中是否需要双重提交功能?

      如果要防止重复提交问题,最好实现Redirect after Post模式,详细解释见以下两个链接:

      http://www.theserverside.com/news/1365146/Redirect-After-Post

      http://en.wikipedia.org/wiki/Post/Redirect/Get

      【讨论】:

        【解决方案3】:

        查看基于TokenInterceptorTokenSessionInterceptor。来自文档:

        与普通的令牌拦截器不同, 这个拦截器将尝试 提供智能故障转移 使用多个请求的事件 同一个会话。也就是说,它会阻塞 后续请求,直到第一个 请求完成,然后改为 返回 invalid.token 代码, 它会尝试显示相同的 回应原始的、有效的 动作调用将显示 如果没有提交多个请求 首先。

        【讨论】:

          猜你喜欢
          • 2011-06-09
          • 1970-01-01
          • 1970-01-01
          • 2011-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-09
          • 1970-01-01
          相关资源
          最近更新 更多