我有一个用于CRUD的RestController注释如下:
@RestController
@RequestMapping("/rest/v1/area")
public class AreaController
我的方法注释如下:
@RequestMapping(value = "/{uuid}", method = RequestMethod.PUT)
public ResponseEntity<Area> save(@Valid @RequestBody Area area) {
有没有办法使用方法的值来获得绝对路径?我想添加一个上传文件的方法,并且不想为此创建一个新的Controller。我想要一个像这样的方法:
@RequestMapping(value = "/rest/v1/area-upload", method = RequestMethod.PUT
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
谢谢!
答案 0 :(得分:7)
来自文档:(spring 2.5 api document of requestmapping)
方法级别映射仅允许缩小在类级别(如果有)
表示的映射
所以你不能覆盖,只能将其缩小到子路径。
当然,如果您创建一个新的控制器类并将该方法放在那里,您可以让它指向您喜欢的任何路径。
答案 1 :(得分:2)
您只需更改控制器的路由映射即可。
@RestController
@RequestMapping("/rest/v1")
public class AreaController
并且方法的映射将是:
@RequestMapping(value = "/area-upload", method = RequestMethod.PUT
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {