token用来防止表单的重复提交。
需要在action中配置token拦截器 ,并且在页面表单中加入<s:token/> 标签。
struts.xml
<package name="myaction" extends="struts-default" namespace="/myaction">
<interceptors>
<interceptor-stack name="mytoken">
<interceptor-ref name="token" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<action name="myaction" class="com.zf.action.MyAction" >
<interceptor-ref name="mytoken" />
<result name="success">/index.jsp</result>
<!-- 当用户重复提交数据会跳转到下面的页面 -->
<result name="invalid.token">/testToken.jsp</result>
</action>
</package>xxx.jsp
<s:form name="myform" method="post" namespace="/myaction" action="myaction" theme="simple">
<s:textfield label="name" name="name" key="name" />
<s:textfield label="age" name="age" key="age" />
<s:token/>
<s:submit value="提交" />
</s:form>当用户重复提交数据的时候,就会抛出下面的异常了。
No result defined for action com.zf.action.MyAction and result invalid.token
本文介绍如何使用Struts2的token拦截器防止表单重复提交。通过在struts.xml中配置自定义拦截器堆栈并加入<s:token/>标签实现。当检测到重复提交时,将转向特定页面。
6650

被折叠的 条评论
为什么被折叠?



