2011-02-25 129 views
4

最近,我一直在研究構建Web應用程序的新框架。爲此,我想試用Spring MVC。在評估一個框架的許多參數中,一個是我不想綁定到與框架相關聯的標籤庫,以利用HTTP請求參數 - > Java bean轉換。 Spring MVC文檔反覆提到可以僅使用JSTL查看相關事物,並且沒有使用Spring標記,但是,我還沒有找到一種方法來讓Request-to-Bean翻譯功能[SimpleFormController]在沒有Spring標記的情況下工作。彈簧mvc表單處理不使用彈簧標籤

截至目前,唯一的辦法似乎是逐個提取請求參數並設置爲我的bean。有沒有辦法使用框架相關標籤來執行這個轉換?

我感謝您的意見!

+0

您可以在哪裏獲得綁定?我有一個類似的問題[我的問題](http://stackoverflow.com/questions/11603619/data-binding-without-using-spring-taglib/11606189#11606189) – 2012-07-23 06:37:04

回答

1

彈簧標籤是完全可選的。

閱讀Spring Reference Document的第15,16和17章您可以使用註釋來檢索控制器的請求參數(請參閱第15.3節)。

+2

謝謝指出註釋支持 - 但是,我正在尋找將特定表單映射到bean/model類的東西。如果有很多參數,使用'@ RequestParam'註解會變得非常麻煩。 – anirvan 2011-02-27 19:53:21

2

我使用沒有Velocity模板的Spring Web MVC(非JSP模板)。要回答你的問題,你需要了解Spring如何執行數據綁定。基本上,這都是以你給你的輸入元素的名義。 E.g

<input name="properytOne" value="1" type="hidden"> 
<input name="properytTwo" value="2" type="hidden"> 
<input name="rich.property3" value="3" type="hidden"> 

將值綁定到一個對象像這樣

class CommandOne { 
    private String propertyOne; 
    private String popertyTwo; 
    private CommandTwo rich; 

    // Getters and setters 
} 

class CommandTwo { 
    private String propertyThree; 

    // Getters and setters 
} 

您還必須確保實例化你的命令對象,但會在你SimpleFormController處理。

0

根據我的理解,你試圖實現的是將你的表單綁定到你的Bean類,這在JSF中很好地實現。 JSF適用於組件架構,並且非常易於入門,此外還有許多可用的組件構建器,例如primefaces,omnifaces,icefaces,openfaces等。自行設計的組件的可重用性可以在特定項目中幫助您。嘗試給JSF一個機會。謝謝,希望這有幫助。

+0

哦,男孩,JSF是我會遠離任何一天的東西。無論什麼疑問在我腦海中留下的關於JSF的可怕性已被詹姆斯高斯林的這個神話般的談話擱置 - http://youtu.be/9ei-rbULWoA?t=47m16s – anirvan 2013-04-30 12:28:50