2012-12-07 22 views
0

我有一個要求,叫行動從行動B A多次在同一個方法調用。有什麼辦法可以實現它嗎? 我可以給一些背景。我有一個產品特定的API,在內部使用struts實現,並且該操作只能接受一個id和一個文件對象。但是,我有一個要求爲多個ID存儲相同的文件。因此,我可以使用自定義操作類,可以接收多個ID,並在循環調用隨產品附帶的動作類。另外,我可以通過攔截器將表單數據傳遞給下一個動作類呼叫同一行動的形式多次提交

+0

我不是支柱專家,但它聽起來好像有緊密耦合與控制器業務邏輯時,它應該是一個典範。控制器應調用模型上的業務邏輯,而不是控制器操作。 – David

+0

那麼,什麼阻止你? –

+0

@大衛,我們通常說的業務/服務層,因爲一個Struts2的行動是一個模型(既服務和視圖層),但肯定的,它似乎是問題的一部分。 – Quaternion

回答

1

您可以在表單上通過不同的動作名稱(如同一UserAction類中的deleteUser,editUser,addUser)多次調用相同的動作類。

希望,這將滿足您的目的。

+0

我有一個文件上傳操作。我不想多次提交表單,因爲它會多次傳遞文件數據。 – user1331243

0

我沒有測試過,可能沒有時間去嘗試。但我認爲你可以用這種方式多次調用一個單獨的動作。在struts.xml中使用成功重定向到相同的動作name.Example

<action name="onSubmit" class="com.example.SubmitAction" method="upload"> 
<result name="success" type="redirect">onSubmit</result> 
<result name="error">Success.jsp</result> 
</action> 

OR

<action name="onSubmit" class="com.example.SubmitAction" method="upload"> 
<result name="success" type="redirect">onSubmitRedirect</result> 
<result name="error">Success.jsp</result> 
</action> 



<action name="onSubmitRedirect"> 
<result name="success" type="redirect">onSubmit</result> 
</action> 

您可以使用錯誤狀態終止你循環。試試吧,我會很高興知道它的結果。