【发布时间】:2017-07-11 14:59:37
【问题描述】:
我有由 UserController 处理的 URL /users 和 /users/58。
现在,我想将/users/58/images 重定向到ImageController,以便将所有有关Images 的代码移动到ImageController。
这是 UserController 的样子:
@RequestMapping(method = RequestMethod.GET, value = "/users")
List<User> paginate() { ... }
@RequestMapping(method = RequestMethod.GET, value = "/users/{id}")
List<User> get(Long id) { ... }
@RequestMapping(method = RequestMethod.GET, value = "/users/{id}/images")
List<Image> images(Long userId) {
// What I want to do is something like this
ImageController images = new ImageController();
return images.getByUser(userId);
}
首先,这是一个好的设计吗?如果是,我如何从一个控制器调用另一个控制器?
【问题讨论】:
-
我相信您可以简单地定义另一个具有适当映射的控制器。 Spring 应该使用与您的 URI 匹配的最具体的请求映射。
-
您需要的是服务而不是另一个控制器或存储库。
-
..is
ImageController已经“到位”..并且(如果,)它映射到什么请求路径? -
@xerx593,不,还没有实现任何东西。我只是想先设计所有这些。
-
@efekctive,在
UserController类中调用imageService.getByUsers(userId)是不是一个好设计?还是我应该做userService.getImages(id)?
标签: java spring controller