2012-05-09 91 views
4

是否有可能讓Spring MVC的表單綁定某種類型的提示以指示要使用表單數據實例化和填充的類?Spring MVC中的多態表單綁定

我有一些非常不尋常的要求,試圖建立一個動態表單,代表不同對象的集合。用戶可以將選定類型的對象添加到該集合中,然後使用表單元素設置該對象類型的屬性。我可以弄清楚如何使用jQuery創建表單,但我不知道如何讓Spring在不知道預先綁定什麼類型的情況下處理POST數據的加載。

+0

參見[我的回答其他問題(https://stackoverflow.com/a/43414488)替代的解決思路。 – user11153

回答

3

我能想到的一種方法是編寫自己的自定義HandlerMethodArgumentResolver,它負責將請求轉換爲控制器方法的參數值。您應該能夠創建一個自定義註釋,它將向Spring MVC指示您的自定義處理程序方法參數解析器將解析特定註釋方法參數(如@CustomType Object argument)。

一旦調用進入處理程序解析器,您可以確定json請求應該映射到的類型,並用實際類型調用json映射器。

您可以註冊一個自定義的參數解析器是這樣的:

<annotation-driven> 
    <argument-resolvers> 
     <beans:bean class="..CustomArgumentResolver"/> 
    </argument-resolvers> 
</annotation-driven>