填写基本资料,提交保存,之后查询结果,跳转到显示的页面, 这个时候刷新,请求还是在发送,数据库多了数据一模一样只是时间不一样,求解,我用过令牌不过感觉还要判断感觉好纠结,求高手指教下怎么让他保存之后就刷新页面不能在保存上一次的请求,简单实用 谢谢啦

解决方案 »

  1.   

    Struts2好像有个方法能够实现的。
      

  2.   

    你不会重定向吗?重定向到另一个页面呀!
    response.SendRedirect到另一个页面也行呀!
      

  3.   

    是内部框架 没有重定向 我也想 可是没有办法、、、现在我想的是 token  可是觉得太麻烦了
      

  4.   


    s1 能找到 response 怎么没重定向?????????
      

  5.   

    保存后方法返回后给提示。保存成功。  再有就是你insert的时候ID限制下。主键 
      

  6.   

    token不麻烦呀,save一下,然后判断一下,总共就几句话而已
      

  7.   

    通过标签类型获取链接getElementsByTagName,然后重置掉
      

  8.   

    为什么不用jquery.ajax提交,提交前给判断是否之前提交过该表单,如果提交过不给予提交,这样还会出现重复提交吗?
      

  9.   

    如果只是为了防止误操作,直接在提交按钮上onclick='this.disabled=true',这样就没法再次点击了。
    可是有时网络超时怎么办?那就加个定时器,提交按钮禁用后倒计时10秒后重新变为可用如果是为了防止故意重复提交同一表单,在生成填写表单页面时附加一个隐藏的随机数,同时放入session中,接收到表单后核对随机数字段一致就接受表单并将该session字段置空
      

  10.   

    <result name="updates" type="redirect">/con/con_undeclaredList.action</result></result>
    con/con_undeclaredList.action这个就是你跳转的方法
      

  11.   

    写个JS让按钮变为disabled..不过不能防坏人。。
      

  12.   

    其实解决重复提交的最有效办法就是ajax提交,后台做好ajax验证,前台必须点击按钮执行ajax事件才是有效的,按F5是无效的,比如:ajax.post("/login.htm", {user : 'admin', pwd : '123456'}, function(json) {
        if (json.success) {
            alert("登录成功");
            window.location.href = "/index.htm";
        } else {
            alert("用户名或密码错误");
        }
    });后台:/**
     * 用户登录
     */
    public Json login() {
    try {
    CommUtil.checkAjax(Constant.REQUEST_POST);// 验证必须是ajax访问
    String user = ParamUtil.paramString("user"), pwd = ParamUtil.paramString("pwd");
                            // 处理你的业务逻辑.....
    return new Json(true, Json.OPERATE_RIGHT_MESSAGE).addData("id", store.getId());
    } catch (Exception e) {
    log.error("用户登录", e);
    return new Json(false, e.getMessage());
    }
    }如果你代码这样写,就不存在有重复提交的可能