同一Controller内的RequestMapping值不同

时间:2015-11-10 13:56:57

标签: spring rest

有一个现有的控制器,我想添加一个额外的get方法,稍微修改一下逻辑。有findAll方法,我想添加getMessages方法。

@RestController
@RequestMapping(value = "/options", produces = MediaType.APPLICATION_JSON_VALUE)
public class OptionController {

 ...Definitions etc...

 @RequestMapping(method = RequestMethod.GET)
    public ResponseEntity<?> findAll(@PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
        Page<Option> page = optionRepository.findAll(pageable);
        return ok(pagingAssembler.toResource(page));
    }
}

在新方法之下:

@RequestMapping(value = "/optionsWelcome", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
public ResponseEntity<?> getMessages(@PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
    Page<Option> page = optionRepository.findAll(pageable);
    return ok(pagingAssembler.toResource(page));
}

对于/optionsWelcome的http来电,我收到404,但/options有效。

是否可以让控制器具有2个不同URL的映射,还是需要制作第二个控制器?

1 个答案:

答案 0 :(得分:1)

/options是整个控制器的映射。 /options/optionsWelcome可能会有用。

您需要将/options映射移动到方法。