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