1

現在、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つの別々のクラスに分けたいと思います。

4

1 に答える 1

1

この制限は、Spring3.1で新しいHandlerMethod抽象化によって解決されました。3.1.M2にアップグレードする必要があります。例が必要な場合はお知らせください。

于 2011-08-15T13:01:33.330 に答える