2013-01-14 95 views
2

有沒有把這樣的一種方便的方式..Spring MVC的請求/命令對象

@RequestMapping("/some/action/{q}/...") 
public void doSomething(@PathVariable("q"), oh, my, god, a, billion, annotated parameters) { .. } 

弄成這個樣子..

@RequestMapping("/some/action/{q}/...") 
public void doSomething(NiceEncapsulatingRequetObject request) { .. } 

使用Spring MVC?

回答

0

檢查docs後,它似乎並不支持開箱即用。你可以嘗試創建你自己的HandlerMethodArgumentResolver,它爲你提供這個功能。您可能會遇到一些問題,因爲您需要在實施和HandlerMethodArgumentResolverComposite實例之間的循環引用。儘管如此,我認爲這應該是可能的。

0

是spring支持開箱即用,它通常被稱爲bean綁定。 基本上,你創建一個帶有相同名稱的參數的對象, 所以如果你有一個參數「q」,你的對象應該包含一個私有字符串q,同時存在getter和setter。最好不要使用任何構造函數。

Spring將只填寫它在對象中的參數,並通過方法的參數傳遞它。

0

你可以創建你自己的對象喜歡NiceEncapsulatingRequetObject和它的屬性應該是String oh, Integer my等,如果你有確切的名字發送請求,將工作