2010-09-22 79 views
0

這裏是情況。一個新手Struts2問題

我有3個動作 1.動作/ create_something 2.動作/ save_something 3.動作/在www.site.com/action/create_something

preview_something

我開始我填寫一些info並提交一個傳遞給save_something動作的表單

save_something創建一個基於表單輸入的對象foo。 foo現在有一個字段調用ID(「123」)。然後它將一些與foo相關的數據保存到數據庫中,並使用id參數轉發給preview_something。

現在我在www.site.com/action/preview_something?id=123

我把ID和命中數據庫生成foo。在頁面上,我顯示了foo中的各個字段。

好吧...我的問題是這樣的:

是否有必要通過id來動作/ preview_something並再次命中數據庫? foo仍然對我有用嗎?我的對象foo是否仍然存在於我的動作類的範圍內?

對不起,新手在這裏。

+0

寫'n00b'是爲n00bs,所以下次避免h4x0r-speech – 2010-09-22 21:29:20

+0

你如何轉發你的行爲?無論如何 - 有很多可能的解決方案,一些取決於你想要什麼或你有什麼(重新設置,會話,隱藏的領域,...)。 – Trick 2010-09-23 09:41:01

+0

klez - 我是如此n00b,我不得不使用「新」^ ___^ – kaybee 2010-09-23 14:32:13

回答

0

好的,參數不再適用於與您的案例預覽。

可能的解決辦法#1:

你的Struts Action可以實現ServletRequestAware。然後你可以將你的foo對象保存到save()方法的會話中,然後在preview()中讀取它。

可能的解決辦法#2:

在你save()你可以返回preview()和全範圍(對象foo,參數,...)將保持相同save()

這將是最簡單的方法。