現在、URLグループのGETとPOSTの両方を処理するコントローラーが1つあります。
@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();
}
次に、2つのコントローラーを作成します。どちらも同じ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();
}
...
}
出来ますか?1つのURLを2つの異なるコントローラーで処理できないというSpring例外が発生したためです。この問題の回避策はありますか?私は本当にこれらの2つの完全に異なるアクションを2つの別々のクラスに分けたいと思います。