`
starbhhc
  • 浏览: 633534 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

struts令牌解决重复刷新提交的问题

    博客分类:
  • java
阅读更多
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);//生成一个TOKEN return 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");

  }

  

  注意:insert.jsp中的form必须为html:form,另外html:form 没有id属性,取代的是styleId 。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics