通过将子路径映射到不同的控制器来拆分Spring控制器

时间:2016-06-23 16:27:55

标签: java spring spring-mvc

我正在尝试拆分一个变得相当臃肿的弹簧控制器。主控制器FooController映射到" / foo"。随着FooController的发展,子映射的几个处理程序" / foo / bar /"已经浮现。感觉就像这些" / foo / bar"由于添加了所有功能,调用应由不同的控制器处理。

我正在使用spring 4,这是我尝试做的代码示例:

@Controller
@RequestMapping(value="/foo/")
public class FooController { 
// ...
}

@Controller
@RequestMapping(value="/foo/bar"")
public class BarController {
// ...
}

我无法接收/ foo / bar /的请求。春天不可能这样,或者我错过了什么?

我已经设置了spring-servlet以便能够扫描BarController。

由于移动客户端存在向后兼容性问题,我无法简单地添加映射到" bar /"的BarController。我当然可以使用未来的API,但我希望尽可能将所有API组合在一起。

1 个答案:

答案 0 :(得分:-1)

您可以在同一个FooController

中嵌套URL
@Controller
@RequestMapping(value="/foo")
public class FooController { 

    @RequestMapping(value = {"/bar"}, method = {RequestMethod.POST})
    public ModelAndView someOperation(....){

    }
}