首页 > 解决方案 > 根上的 Spring RequestMapping

问题描述

我是 Spring 新手,对 API 有一点问题。

我的弹簧控制器

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

  @RequestMapping(value = "/", produces = 
  MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
  public ResponseEntity<Page<User>> getAll(
    @RequestParam("param") boolean param, HttpServletResponse response) {
    /* DO STUFF */
  }
}

我的 JavaScript 目前是如何工作的(w

http.get("/api/user/?param=test");

我想如何使用它

http.get("/api/user?param=test");

但是如果没有参数我仍然希望能够调用

http.get("/api/user/");

如您所见,我想乘坐“额外/”。有没有办法做到这一点?

标签: javascriptajaxspringspring-restcontroller

解决方案


你可以试试这个:

@RequestMapping(value = { "", "/" }, produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET) 
public ResponseEntity<Page<User>> getAll(@RequestParam(value = "param", required = false) boolean param, HttpServletResponse response) {
    /* DO STUFF */ 
}

使用required=false,您将能够使用/api/user/(不带参数)来使用此方法。

您还可以创建两个不同的处理程序(一个支持param参数,另一个处理/)。


推荐阅读