Spring MVC RequestMapping 无法在 RestController 上运行
Spring MVC RequestMapping not working on RestController
我想要一个带有基本映射“/user”的 RestController-class(因此不同的函数将具有类似“/user/add”、“/user/remove”的路径等或使用 POST/GET 等)
这是我不明白无法开始工作的部分:
@RestController
public class UserController {
@GetMapping("/user")
public Response login(Principal principal){
//some output
}
}
这种情况下的预期行为是我可以在“/user”下访问我的输出。这按预期工作。
现在,如果我将其修改为以下内容(因为此控制器中的所有函数都应具有以“/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
}
}
那么你的 url 应该在末尾有“/”,比如“http://localhost:8080/user/”
我会扔掉 @GetMapping("/") 中的“/”符号,然后像这样离开:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping
public Response login(Principal principal){
//some output
}
}
如果你需要地图获取或post你可以这样使用:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/add")
public SampleObj getJson() {
return new SampleObj();
}
}
应该可以。
我想要一个带有基本映射“/user”的 RestController-class(因此不同的函数将具有类似“/user/add”、“/user/remove”的路径等或使用 POST/GET 等)
这是我不明白无法开始工作的部分:
@RestController
public class UserController {
@GetMapping("/user")
public Response login(Principal principal){
//some output
}
}
这种情况下的预期行为是我可以在“/user”下访问我的输出。这按预期工作。 现在,如果我将其修改为以下内容(因为此控制器中的所有函数都应具有以“/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
}
}
那么你的 url 应该在末尾有“/”,比如“http://localhost:8080/user/”
我会扔掉 @GetMapping("/") 中的“/”符号,然后像这样离开:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping
public Response login(Principal principal){
//some output
}
}
如果你需要地图获取或post你可以这样使用:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/add")
public SampleObj getJson() {
return new SampleObj();
}
}
应该可以。