kongq1983 发表于 2013-2-6 08:41:03

解决重复提交

一. struts token
1. addInput method
saveToken(p_request);
 
2. addInput.jsp
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="<%=session.getAttribute("org.apache.struts.action.TOKEN")%>" />
 
3. add method
   if (isTokenValid(p_request, true)) {
           // 表单不是重复提交
           // 这里是保存数据的代码
   } else {
           // 表单重复提交
           saveToken(p_request);
           // 其它的处理代码
   } 
 
二. webwork解决方法
1. 在Action Input方法:
TokenHelper.setToken(TokenHelper.DEFAULT_TOKEN_NAME);
 
2.
在vm页面使用:

<input type="hidden" name="webwork.token" value="$session.getAttribute('webwork.token')"/>


Jsp:
<input type="hidden" name="webwork.token" value="<%=request.getSession().getAttribute("webwork.token")%>"/>
 
3.

xwork设置(Action add方法):
<interceptor-ref name="token-session"/>
<!--EndFragment-->


<!--EndFragment--><!--EndFragment-->
页: [1]
查看完整版本: 解决重复提交