Spring MVC控制器参数绑定:用POJO替换参数

时间:2015-10-26 16:18:25

标签: java spring spring-mvc model-view-controller mapping

我有一个包含7个以上参数的简单控制器方法,并希望使用模型对象重构它,即提取参数对象:

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

我尝试使用setter和getter提取对象,并且pathVariable和requestParameters按名称进行映射。但是我为@RequestBody做同样的麻烦,即使我把@RequestBody放到了setter中,它对我也不起作用......

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. 如何在提取的POJO中保留@RequestBody参数?
  2. 另一个问题是如何控制参数的名称,即if 参数名称与POJO中的字段名称不同,有没有 注解?这个不起作用:
    public void setOne(@RequestParameter(value="o") String one) {this.one = one}
  3. 如何根据需要标记字段或提供@RequestParameter注释中的默认值?

1 个答案:

答案 0 :(得分:0)

对于(1)我只是将@RequestBody作为单独的参数保留,尽管我不喜欢它。

好的,看起来做(2)和(3)的唯一方法是通过自定义数据绑定:the similar question

如果您了解它,请随意发布另一个简单的解决方案。

相关问题