我目前有一个控制器可以处理URL组的GET和POST:
@Controller
public class RestGroups {
...
@RequestMapping(method = RequestMethod.GET, value = "/groups")
@ResponseBody
public GroupsDto groups() {
return new GroupsDto(getGroups());
}
@RequestMapping(method = RequestMethod.POST, value = "/groups", headers = "Accept=application/xml")
@ResponseBody
public GroupsDto postGroup(@RequestBody GroupDto groupDto) {
groupSaver.save(groupDto.createEntity());
return groups();
}
现在我想拥有两个控制器,两个控制器都分配给相同的URL,但每个控制器都有不同的方法,如下所示:
@Controller
public class GetGroups {
...
@RequestMapping(method = RequestMethod.GET, value = "/groups")
@ResponseBody
public GroupsDto groups() {
return new GroupsDto(getGroups());
}
...
}
@Controller
public class PostGroup {
...
@RequestMapping(method = RequestMethod.POST, value = "/groups", headers = "Accept=application/xml")
@ResponseBody
public GroupsDto postGroup(@RequestBody GroupDto groupDto) {
groupSaver.save(groupDto.createEntity());
return groups();
}
...
}
有可能吗?因为现在我得到Spring异常,一个URL不能由两个不同的控制器处理。这个问题有解决方法吗?我真的想把这两个完全不同的动作分成两个不同的类。
答案 0 :(得分:1)
这个限制已经在Spring 3.1中通过其新的HandlerMethod抽象解决了。你必须升级到3.1.M2。如果您需要一个例子,请告诉我。