<s:token/>应该是通过是否是从同一个页面提交来判断重复提交表单的.但是我的这个页面要求操作从头至尾都在一个JSP页面,上面部分是表单,下面部分是表格,每次提交后回到原页面,但是下面的表格增加一行新提交的,这种情况下,我提交一次以后,一旦对页面刷新,又会重复提交一次一模一样的,但是如果加了<s:token>的话,结果就是这个页面只能提交一次,第二次提交就会被认为是重复的.
所以我想问问有没有什么其他的解决方案

解决方案 »

  1.   

    我碰到这种情况一般用frameset作的
    只刷新部分,不过修改比较麻烦,不建议
    你再action里面控制下,如果不是初始化页面就不要跳转可以么
      

  2.   

    请求重定向
    response.sendRedirect("");
    或者在struts-config.xml
    <forward ....redirect="true">
      

  3.   

    2个页面互相跳转的话
    可以使用这种令牌机制
    但是在同一个页面就只能做一次提交了
    建议用AJAX 这样异步提交 局部刷新
      

  4.   

    <s:token/> 是Struts2的标签吧,
    怎么会有 response.sendRedirect("");
    或者在struts-config.xml
    <forward ....redirect="true">
    这样的答案呢??
      

  5.   

    <result name="selMemberInfo" type="dispatcher">/page/jsp/jtmembermanage.jsp</result>
    <result name="addJTMemberIn" type="redirect-action">
    <param name="actionName">jtmember</param><!--action类bean的名字-->
    <param name="method">selMemberInfo</param><!--action类中你想跳转到的方法名-->
    </result>
    通过type="redirect-action"来定向到查询方法 让你的操作方法(添加,修改等)与查询方法分成两个action方法,操作时先调操作的action方法然后redirect-action到查询方法再通过查询方法返回到指定页面,如果用户刷新页面 此时重复调用的是查询的action方法 对程序无影响。