2015-10-26 59 views
0

替換參數I具有與多於7個參數的簡單控制器的方法,並希望使用它的模型對象,而不是,即,以提取參數對象重構:Spring MVC的控制器參數綁定:與POJO

@RequestMapping(value="/{one}") 
public String controllerMethod(@PathVariable(value="one") String one, @RequestParam String two, ... @RequestBody body) { 
... 
} 

我嘗試用setter和getter提取對象,pathVariable和requestParameters通過名稱映射。不過我有麻煩讓同爲@RequestBody,它不爲我工作,即使我把@RequestBody到二傳手...

public class Parameters { 
    private String one; // pathVariable 
    private String two; // requestParameter 
    private String body;// requestBody - always NULL! 
    // other fields definition 

    public setBody(@RequestBody String body) {this.body = body} 
    //other setters/getters 
} 
  1. 如何保持@RequestBody參數提取POJO?
  2. 另一個問題是如何控制參數的名稱,即如果 參數名稱與POJO中的字段名稱不同,是否有任何 註釋?這一個不起作用:
    public void setOne(@RequestParameter(value="o") String one) {this.one = one}
  3. 如何根據需要標記字段或給出一個默認值,如在@RequestParameter註釋?

回答

0

對於(1)我只是保留@RequestBody作爲一個單獨的參數,雖然我不喜歡它了。

好吧,看起來像是在做的唯一方法(2)和(3)通過自定義數據綁定:the similar question

隨意,如果你知道它張貼另一個簡單的解決方案。