“然后一刷新,等于又执行了一遍。”列出任务------>任务表
taskList.do------->Action------->taskList.jsp如果发起任务,返回返回到taskList.jsp
processNew------->Action------->taskList.jsp这样,发起任务后,如果一刷新,浏览器保留了原来的.do,又发起一条新记录!!!!!!!!crazymens(风)????????

解决方案 »

  1.   

    可以使用对比令牌的方式来防止刷新带来的问题,具体请参考《J2EE核心模式》
      

  2.   

    我靠,不会吧,难道struts自身没有解决的办法。令牌?????我怎么想起来来计算机网络了!!
      

  3.   

    这是不可避免的,除非用redirect, 因为是在服务器端的传输forward
      

  4.   

    刷新一遍又执行一遍的问题,可以在action中加判断啦, 有很多解决办法的。我认为这是struts的一个局限,把Perform限死在了必须返回forward,其实像.net可以使用redirect的
      

  5.   

    谁说Struts不能redirect,只要在forward配置中加redirect=true属性就可以了
      

  6.   

    用sendRedirect就可以了,不过这样要比forward的效率低,一般你就在edit或者insert的时候需要刷新地址栏
      

  7.   

    不需要这么麻烦自己看一下,Struts里面有token,你可以validateToken来防止用户重复submit或者refresh
    页面如果你想要显示.jsp很简单, 在struts-config里面把redirect设置为true就可以了。
    但是有一个局限, 如果你把jsp放进WEB-INF里面(通常为了安全),设制redirect就会出错
    因为servlet specification不允许http request访问WEB-INF里面的内容
      

  8.   

    谢谢ESoftWind()和yak2002(牦牛)  的提示~~~
    除了在struts里配置,对于有的Action没有forward属性:大家看看ActionForward下面2个构造方法就知道我的问题怎么解决了,:)public ActionForward(String path)
    public ActionForward(String path,Boolean redirect)
      

  9.   

    还是这句话比较经典,,呵呵:
    jsp能做到的,struts更容易做到.