java - Spring MVC RequestMapping 不适用于 RestController

标签 java spring-mvc spring-restcontroller request-mapping

我想要一个具有基本映射“/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/

相关文章:

java - RestController - 将 POST 请求转发到外部 URL

java - 我尝试使用 Set.remove(null) 从哈希集中删除 null。但它实际上并没有起作用。我在这里可能做错了什么?

java - 如何使用 github API 列出二级分支?

java - 使用带有 spring LDAP API 的 LDAP 进行身份验证,而不使用 spring security

java - 下一个更大的元素 - https ://leetcode. com/problems/next-greater-node-in-linked-list/

java - 在这种情况下,@InitBinder 和 WebDataBinder 的作用是什么

jquery - 如何使用 jQuery 验证插件的自定义方法以及如何匹配字符串值

java - 如何在Spring Batch中读取多个CSV文件来合并数据进行处理?

java - 审核 Restful Web 服务中的用户 ID、服务

java - Spring引导2.2.0测试: Configuration error: found multiple declarations of @BootstrapWith