Spring MVC RequestMapping不能在RestController上运行

问题描述 投票:0回答:1

我希望有一个带有基本映射“/ user”的RestController类(因此不同的函数将具有“/ 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”)但是这样做不起作用)和我不知道为什么它不起作用。谁能告诉我我的错误在哪里?

java spring-mvc spring-restcontroller request-mapping
1个回答
1
投票

如果您使用此代码:

@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
 }
}

如果您需要地图获取或发布,您可以使用如下:

@RestController
@RequestMapping("/user")
public class UserController {

@GetMapping("/add")
public SampleObj getJson() {
    return new SampleObj();
 }
}

它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.