小弟在页面中form里面配置了<form action="<%=request.getContextPath() %>/*****.action" id="***Form" enctype="multipart/form-data" method="post"><s:token name="token" />struts.xml里面配置的(针对action)<interceptor-ref name="defaultStack" />
<interceptor-ref name="token"/>
<result name="invalid.token">/error/404.jsp</result>执行顺序,小弟是先查询出一个列表页面,之后点击‘增加’跳转到增加页面,最后再提交回列表页面,这里面增加令牌机制可如上配置完成后,点击列表都直接进入404.jsp页面了,这怎么回事啊

解决方案 »

  1.   

    给你个实例吧:
    regist.jsp
    <s:form action="regist">
      <s:token />
      <s:actionerror />
      <s:textfield name="userName" key="userName"/>
      <s:submit value="submit"/>
    </s:form>struts.xml<package name="default" extends="struts-default">
      <action name="regist" class="action.RegistAction">
      <interceptor-ref name="token"/>
      <interceptor-ref name="defaultStack"/>
      <result name="invalid.token">/regist.jsp</result>
      <result>/regist.jsp</result>
     </action>
    </package>你的问题在于拦截器的顺序,应该把token放在所有拦截器之前,以确保更早的拦截所有请求。另外<s:token/>有没有name属性我不清楚,我从没加过。
      

  2.   

    还有,你的struts配置里面只写了token的result指向页面,没有些result name=”success“ 的定向页面,所以总会指向你定义的404页面