2012-06-14 50 views
2

我已經學會了如何使用Spring MVC 3,但我對它的背景很感興趣。對我來說最有趣的事情之一就是表單處理。Spring MVC表單處理如何工作?

到目前爲止,我知道每個由調度器處理的http請求映射到適當的控制器。控件使一些工作落後,並選擇要加載的JSPX頁面,並向其發送屬性。在容器(Tomcat等)編譯的JSPX到另一個servlet。比網頁發回http響應。

在大多數情況下,這對我來說似乎是正確的。但是,表單處理是不同的。在<form:form>標記中,您定義了映射到它的對象和屬性。但是在上面提到的邏輯中,它實際上從來不會被調用。我的意思是,用戶請求帶有表單的頁面。所以控制器呈現它。比用戶發送表單,並且一些保存方法由調度員調用。但是,Spring如何知道如何映射包含屬性的屬性,如果它們在未被調用的JSPX中描述?另外,如果您知道Spring MVC背景上的任何優秀的,最好是web的資源,請發佈一個鏈接。謝謝。

+0

你是什麼意思,沒有被調用的JSPX?你如何看待HTML生成? –

+0

是的,當呈現給用戶的表單。但是,當用戶發佈數據時,它的另一個請求。 –

+0

是的;這與JSP有什麼關係?無論如何,表單值都帶有名稱。這些名稱用於映射模型對象/等。類型轉換在表單和模型類型的字符串之間進行轉換。 –

回答

4

好了,所有的Spring參考之王是在

http://static.springsource.org/spring/docs/current/

上有MVC中長款,並就如何建立使用Spring標籤頁。

問題是,告訴你閱讀,就像告訴你從消防水管喝一杯。由於我在使用Spring方面做得更好,我已經瞭解到知道如何在Spring中做好一件事意味着知道如何在Spring中做好其他事情。

這一切都值得學習,而且當你瞭解更多關於Spring的真正優勢時,你會發現自己的實力。

谷歌搜索「example spring form」可以找到像http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/這樣的有用的例子。但是這種學習方法的問題在於Spring在不斷髮展。我發現,從網上隨機的例子中學習很複雜,有些人在Spring 3可用之前發佈了他們的例子,或者befor註釋可用,等等。

對我來說,隨着我繼續學習Spring,還沒有一個參考。它一直是主要參考,網絡上有很多例子,並在這裏閱讀大量問題,並發表了一些。

+0

謝謝,但我閱讀了很多關於如何使用它的教程。我可以使用它:)我感興趣的是它如何在後臺工作... –

+0

哦,哇。我沒有看到有關內部的任何信息(不是我問過的),但我想你會去看源代碼。 – Marvo

1

從你描述問題的方式來看,我猜你知道HTTP的概念。但是,您似乎並不瞭解HTTP參數和請求屬性以及它們的生命週期。

當用戶請求一個頁面時,調用Controller中的一個方法,將返回View以顯示請求屬性以及從Controller設置的請求屬性。該視圖然後以HTML格式呈現。在這個HTML中,有一個表單被渲染。此表單的操作可能會或可能不會指向相同的URL。當請求被髮回時,URL又被映射到Controller的方法(可以是具有不同方法的相同Controller或完全不同的Controller)。與第二個請求一起,表單中的這些參數將被髮送到相應的Controller的方法,並且與第一個請求相同的循環再次發生。