我想要一个具有基本映射“/user”的 RestController 类(因此不同的函数将具有“/user/add”、“/user/remove”等路径或使用 POST/GET 等)
这是我不理解且无法开始工作的部分:
@RestController
public class UserController {
@GetMapping("/user")
public Response login(Principal principal){
//some output
}
}
这种情况下的预期行为是我可以访问“/user”下的输出。这按预期工作。 现在,如果我将其修改为以下内容(因为该 Controller 中的所有函数都应该有一个以“/user”开头的路径,这会更干净)
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/")
public Response login(Principal principal){
//some output
}
}
我收到 404 错误页面并且无法再访问“/user” 我发现的所有示例都使用相同的语法(或者有时使用 @RequestMapping(path="/user") 但效果不佳),我不知道为什么它不起作用。 有人能告诉我我的错误在哪里吗?
最佳答案
如果您使用此代码:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/")
public Response login(Principal principal){
//some output
}
}
那么你的网址末尾应该有“/”,如“http://localhost:8080/user/”
我会从 @GetMapping("/") 中扔掉“/”符号,然后像这样离开:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping
public Response login(Principal principal){
//some output
}
}
如果您需要 map 获取或发布,您可以这样使用:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/add")
public SampleObj getJson() {
return new SampleObj();
}
}
应该可以。
关于java - Spring MVC RequestMapping 不适用于 RestController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031568/