问题描述
我的进入action的路径如下,进去后是执行删除记录的功能:url="<%=basePath%>deleteEmail?ids="+idswindow.location.href=url;action配置如下:<actionname="deleteEmail"method="deleteEmail"class="emailConfAction"><result>/sysconf/emailalertconf.jsp</result><resultname="invalid.token">/sysconf/emailalertconf.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="token"/></action>为什么只要加上了拦截器,上面路径就不能进入action,不能删除指定的数据,而只要把action的拦截器去掉。也就是把下面代码去掉<resultname="invalid.token">/sysconf/emailalertconf.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="token"/>删除记录功能就正常了,不过肯定是又会遇到重复提交的问题,!!!请问怎么解决呢?????
解决方案
解决方案二:
特殊的隐藏字段叫做token<s:urlid="formUrl"action="longLivedTokenAction"/><s:formaction="%{formUrl}"method="post"><s:token/><s:textfieldname="name"label="Name"/><s:textfieldname="password"label="Password"/><s:submit/></s:form>其中<s:token/>标签用来生成一个唯一的隐藏字段,在运行的时候生成的内容如下:<inputtype="hidden"name="struts.token"value="C21ZWHEH0Q4B6FY15ZO5BFM1I9W8SIQH"/>--------------------对它进行稍微改动<interceptor-refname="defaultStack"/><interceptor-refname="token"/>||<interceptor-refname="token"/><interceptor-refname="basicStack"/>还有将这四句代码<result>/sysconf/emailalertconf.jsp</result><resultname="invalid.token">/sysconf/emailalertconf.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="token"/>改为<interceptor-refname="token"/><interceptor-refname="defaultStack"/><result>/sysconf/emailalertconf.jsp</result><resultname="invalid.token">/sysconf/emailalertconf.jsp</result>即要让请求先经过过滤器的判断,看此次请求是否有提交记录,如果有,则通过invalid.token重定向到/sysconf/emailalertconf.jsp--------------希望对你有帮助