Spring MVC通过Converter填充对象

时间:2013-05-26 14:52:43

标签: spring spring-mvc

我有控制器方法处理2种类型的请求:添加新的Group和编辑现有的Group。在我使用带@ModelAttribute注释的方法填充Group

之前
@ModelAttribute("group")
public Group setGroup(Long id) {
    if (id != null) {
        return groupService.read(id);
    } else {
        return new Group();
    }
}

现在我想使用ConvertionService来填充对象。我写了GroupConverter并对其进行了配置。但我无法让它发挥作用。

这是我正在尝试做的事情:

@RequestMapping("/edit")
public ModelAndView addAndEditGroup(Group group) {
    ModelAndView modelAndView = new ModelAndView("groups/edit");
    modelAndView.addObject("specialties", specialtyService.list()).addObject("group", group);
    return modelAndView;
}

(这不适用于编辑 - 它只会填充id字段)

@RequestMapping("/edit")
public ModelAndView addAndEditGroup(@RequestParam("id") Group group) {
    // same code
}

(这不适用于添加 - 它表示未找到请求参数id

1 个答案:

答案 0 :(得分:1)

您可以尝试提供默认的@RequestParam值,例如:

@RequestParam(value = "id", defaultValue = "0") 

这样做,您只需要检查值是0而不是null

我希望能帮助你。