2011-04-07 83 views
0

我使用Struts 2的在我的生意的Web应用程序, 并防止在刷新页面时的复式我在我的struts.xml文件中添加动作拦截Struts2的 - 令牌会话拦截问题

<interceptor-ref name="tokenSession"/> 

当我将插入该语句,它会alwys重定向到invalid.token并进入瓷砖 - requisition.tiles,所以什么我做了错误,我不能确定..请帮我...

如果我将删除上面的拦截器,那么它会正常工作,所以最新的问题?

我的struts2.xml代码

<action name="*Requisition" class="com.sttl.rpsc.action.RequisitionAction" method="{1}Requisition"> 
     <interceptor-ref name="basicStack" /> 
     <interceptor-ref name="validation"> 
      <param name="excludeMethods">setupRequisition,setupPostRequisition,setupQualificationRequisition,setUpForUpdateQualificationRequisition, 
      setupAgeRequisition,setupReservationRequisition,deletePostRequisition,showSaveCancelRequisition,setUpForUpdateAgeRequisition,setUpForUpdateReservationRequisition, 
      deleteQualificationRequisition,deleteAgeRequisition,deleteReservationRequisition,setScrutinizePostRequisition</param> 
     </interceptor-ref> 
     <interceptor-ref name="tokenSession"/> 

     <result name="invalid.token" type="tiles">/requisition.tiles</result> 
     <result name="input" type="tiles">/requisition.tiles</result> 
     <result name="success" type="tiles">/requisition.tiles</result> 
     <result name="error" type="tiles">/requisition.tiles</result> 
     <result name="cancel" type="redirect">rpscadminsecure.action</result> 
     <result name="getRequisitionList" type="chain">setupRequisition</result> 
     <result name="reqsuccess" type="chain">setupPostRequisition</result> 
     <result name="postsuccess" type="tiles">/requisitionpost.tiles</result> 
     <result name="qualisuccess" type="tiles">/requisitionqualification.tiles</result> 
     <result name="agesuccess" type="tiles">/requisitionage.tiles</result> 
     <result name="ressuccess" type="tiles">/requisitionreservation.tiles</result> 
     <result name="saveOrCancelsuccess" type="tiles">/saveOrCancelrequisition.tiles</result> 
     <result name="cancelSuccess" type="redirect">setupRequisition</result> 

     <result name="successSetupScrutinize" type="tiles">/requisitionpost.tiles</result> 

    </action> 

我不能确定它... plz帮助我....

在此先感谢..

+0

显示使用拦截器的代码和配置 - 它会更容易帮助。 – Tommi 2011-04-07 10:21:19

回答

1

你必须改变顺序在拦截器中的声明。类似这样的:

<action name="someAction" class="com.examples.SomeAction"> 
<interceptor-ref name="token-session/> 
<interceptor-ref name="basicStack"/> 
<result name="success">good_result.ftl</result> 
</action> 

basicStack是订单中的最后一个。