解决重复提交

阅读 35

2022-02-18


一. 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-->


精彩评论(0)

0 0 举报