2010-12-12 73 views
2

我創建了一個名爲Person的類。然後,我通過Spring控制器將此類的一個對象傳遞給JSP頁面,例如abc.htm將對象從JSP傳遞到Spring控制器

現在我想讓它從abc.htm轉移回另一個控制器。 我怎麼能這樣做?

另外告訴我,如果有任何其他類對象(比如Address類對象)使用該人物對象作爲參數,那麼如何將該類對象傳遞給控制器​​。

我很困惑,請幫助我。

+1

你應該接受一些答案。 – Bozho 2010-12-21 20:17:36

+0

雖然與此上下文無關,但如果它是'EJB&JSF'或'Grails&GSP',則可以實現此行爲。 – 2018-01-24 06:24:14

回答

1

頁面呈現後,你不再處於「Java領域」,所以你沒有你的對象。您可以根據在下一個請求中發回的參數重建它們。

這被稱爲「綁定」。在Spring MVC中,如果您使用的是<form:x> tags,則會自動完成(或多或少)。然後,在你的控制你的對象將是可訪問的方法屬性:

@RequestMapping(..) 
public String foo(YourObject object) {..} 

您可能需要一個@ModelAttribute註釋,如果你的特性參數的名稱和一個在JSP是不一樣的。所述MVC docs寫:

的命令或形式的對象的參數綁定到:bean屬性或字段,具有可定製的類型轉換,這取決於@InitBinder方法和/或所述的HandlerAdapter配置。請參閱AnnotationMethodHandlerAdapter上的webBindingInitializer屬性。這些命令對象及其驗證結果默認情況下將作爲模型屬性公開,在屬性表示法中使用非限定命令類名稱。例如,「mypackage.OrderAddress」類型的「orderAddress」。指定參數級別的ModelAttribute註釋以聲明特定的模型屬性名稱。

我建議您複習PetClinic Sample Application,看看它是如何工作的。

相關問題