Struts2防刷新重复提交表单设置

设置分为两步:

1. 修改Struts.xml配置(以名称为searchAction为例)

<action name="searchAction" class="MailLogAction" method="execute">
<result>/pages/MainPage.jsp</result>
</action>

对于以上的action,未加入防刷新机制时,按F5会重复提交表单。

对于以下修改后:

<action name="searchAction" class="MailLogAction" method="execute">
<result>/pages/MainPage.jsp</result>
<result name="invalid.token" type="freemarker">/pages/MainPage.jsp
   </result>
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">default</param>
</interceptor-ref>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">default</param>
</interceptor-ref>
</action>
加入红色部分即可。

<result name="invalid.token" type="freemarker">/pages/MainPage.jsp
   </result>

此部分设置表单重复提交时指向的页面。

<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">default</param>
</interceptor-ref>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">default</param>
</interceptor-ref>
此部分设置拦截器。


2. 修改jsp页面

找到对应的action的页面,在表单下新增<s:token></s:token>

如下:

<s:form name="SearchLog" method="post" action="searchAction">
<!-- 防止刷新重复提交  -->
<s:token></s:token>

你可能感兴趣的:(jsp,xml,struts)