Spring MVC RequestMapping не работает на RestController - PullRequest
0 голосов
/ 06 марта 2019

Я хочу иметь класс RestController с базовым отображением "/ user" (поэтому различные функции будут иметь пути типа "/ 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"), но это также не работает), и я не знаю, почему он не работает.Может кто-нибудь сказать мне, где моя ошибка?

1 Ответ

1 голос
/ 06 марта 2019

Если вы используете этот код:

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

А если вам нужна карта получить или опубликовать, вы можете использовать так:

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

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

Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...