Spring rest将控制器重定向到另一个

时间:2017-02-20 21:19:03

标签: java spring rest

我目前有这种方法:

@RequestMapping(value = "/{id}/behavior/{behaviorId}", method = RequestMethod.PUT)
private ResponseEntity modifyBehavior(@PathVariable("id") String id, @PathVariable("behaviorId") String behaviorId, @RequestBody BehaviorDto behaviorDto) {

    if (aptitudeRepository.findById(id) == null) {
        return new ResponseEntity(HttpStatus.BAD_REQUEST);
    }
    if (aptitudeRepository.findBehaviorById(id, behaviorId) == null) {
        return new ResponseEntity(HttpStatus.NOT_FOUND);
    } Behavior behavior = new Behavior(behaviorId,behaviorDto.getEn(),behaviorDto.getEs());
    return new ResponseEntity(aptitudeRepository.updateBehaviorById(id, behavior), HttpStatus.ACCEPTED);
我正在按照我喜欢的方式处理这个方法中的请求,但是我的同事告诉我这个方法(以及其他行为方法应该在他们自己的 BehaviorController 类中。 我将行为处理的方法移动到另一个类(BehaviorController),并且所有方法都非常有效。第一种方法/aptitude/aptitude/{id}被重定向到 aptitudeController ,而/aptitude/{id}/behavioraptitude/{id}/behavior/id等其他方法被成功重定向到 BehaviorController ,一切都很好。

buuuuut现在有人告诉我这个方法应该从 AptitudeController 重定向到 BehaviorController 。连同他们的@PathVariables并返回另一个方法返回(xD对不起英语不好)

所以它会结束这样的事情:

@RequestMapping(value = "/{id}/behavior/{behaviorId}", method = RequestMethod.PUT)
private ResponseEntity modifyBehavior(@PathVariable("id") String id,
@PathVariable("behaviorId") String behaviorId, 
@RequestBody BehaviorDto behaviorDto) {

return *somehowMethodRedirecting*?

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您从BehaviorController的AptitudeController创建一个bean,您可以将您的值传递给BehaviorController。根据我的经验,您无法返回BehaviorController。

您正在使用浏览器中的url调用此方法。然后浏览器将获得呈现内容的响应。