六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 103|回复: 0

struts令牌解决重复刷新提交

[复制链接]

升级  66%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
33
 楼主| 发表于 2013-2-7 20:24:15 | 显示全部楼层 |阅读模式
insert步骤。
原来的步骤insert.jsp(form)点提交---->insertAction(做插入的)--->insert.jsp跳回原来页面
但是再次使用刷新会再次提交。
解决方法:
tokenAction--->insert.jsp(form)---->insertAction--->insert.jsp
也就是在提交前先进入一个action,此action生成一个token
tokenAction中execute代码如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {saveToken(request);//生成一个TOKENreturn mapping.findForward("insert");}
在insertAction中的execute写如下代码:
protected ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {ActionMessages errors=new ActionMessages();if(!isTokenValid(request)){errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("error.invalid.token"));saveToken(request);return mapping.findForward("insert");}else{resetToken(request);                            saveToken(request);}/**insert**/插入的方法/**end**/return mapping.findForward("insert");}
<forward name="insert" path="/insert.jsp"/>
注意:insert.jsp中的form必须为html:form,另外html:form 没有id属性,取代的是styleId
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表