2014-11-25 28 views
0

我正在使用struts2應用程序。struts2中的中間重定向

我有一個表單提交的觸發動作,一旦他的是:

<action name="AddDataAction" class="saisie.AddAction" method="add"> 

我需要創建一箇中間頁面,用戶需要做這個動作之前再次登錄。

困難的是,我只能修改struts.xml來創建中間狀態,並且在用戶登錄後,它必須使用表單中的參數(保存在數據庫中)執行此addDataAction方法。

我想過攔截器,但他們可以重定向到一個jsp並調用一個操作來驗證用戶登錄,同時保存表單的數據以保存,如果用戶登錄正確?

回答

0

您可以使用result type redirectAction來實現此目的。

<action name="OtherAction" class="saisie.OtherAction" method="otherMethod"> 
    <result name="redirect" type="redirectAction"> 
     <param name="actionName">loginAction</param> 
     <param name="yourParamName">${yourParamName}</param> 
    </result> 
</action> 

您可以通過將參數值添加到結果中來保留參數值。請注意使用$ {}。它所做的就是調用相應的getter並將它們添加到url中。那麼接下來的頁面上,這些值將被映射到相應的變量使用setter方法

你可以閱讀更多關於redirectAction的redirectAction到驗證用戶的登錄的動作的調用後,所以導致here

+0

,不從AddAction添加的方法被自動調用? (如遞歸實現) – Antt 2014-11-25 15:28:27

+0

不需要,你也需要重定向到那個並且添加參數 – steven35 2014-11-25 15:32:10

+0

如果我理解正確,你的代碼將在AddAction之前執行方法add,然後它重定向到其他動作,所以我應該只把類型重定向並且在我的新動作中,將結果中的redirectAction轉換爲調用AddAction中的方法添加的操作。 – Antt 2014-11-25 15:44:18