Можно ли проверить пустой ввод от пользователя при весенней загрузке? - PullRequest
1 голос
/ 05 апреля 2020

Я пишу приложение для весенней загрузки, и у меня возникают проблемы с проверкой пустого ввода от пользователя. Есть ли способ проверить пустой ввод от пользователя? Например:

@PostMapping("/new_post/{id}")
public int addNewPost(@PathVariable("id") Integer id, @RequestBody Post post) {
    return postService.addNewPost(id, post);
}`

Здесь я хочу добавить новое сообщение, только если пользователь существует в базе данных, но когда я отправляю этот запрос, я получаю обычное сообщение об ошибке 404 и не могу предоставить мое собственное исключение, хотя в моем коде я проверяю, равен ли идентификатор нулю.

http://localhost: 8080 / new_post /

Есть идеи, что я могу сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 05 апреля 2020

Вы можете сделать что-то вроде этого

@PostMapping(value = {"/new_post/{id}", "/new_post"})
public int addNewPost(@PathVariable(required = false, name="id") Integer id, @RequestBody Post post) {
    return postService.addNewPost(id, post);
}

Но идеальный способ справиться с этим - использовать @RequestParam. @RequestParam предназначен именно для этой цели.

1 голос
/ 05 апреля 2020

Я думаю, вам нужно сделать это следующим образом:

@PostMapping(value = {"/new_post/", "/new_post/{id}"})
public int addNewPost(@PathVariable(value = "id", required = false) Integer id, @RequestBody Post post) {

Таким образом, вы также обрабатываете URL, когда идентификатор равен нулю

0 голосов
/ 05 апреля 2020

Я думаю, что это лучший ответ для двух других:

@PostMapping("/new_post/{id}")
public int addNewPost(@PathVariable("id") Integer id, @RequestBody Post post)
{
    if(!ObjectUtils.isEmpty(post))
    {
       return postService.addNewPost(id, post);
    }
    else 
     return null; // You can throws an Exception or any others response
}

id: Не требуется проверять 'id' потому что без идентификатора запрошенный метод не вызывается.

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