Как получить переменную пути в URL-адресе, а не параметр запроса в форме отправить запрос без JavaScript? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть форма:

<form class="form" action="/bars" method="get" >
    <input  type="text" class="form-control" name="pid" id="pid" />
    <button  type="submit">Find By PID</button>
</form>

При отправке я хочу получить URL-адрес как /bars/123 (при условии, что в поле ввода было введено 123).Вместо этого я получаю /bars/?pid=123.Как я могу решить эту проблему без использования JavaScript?Я использую тимилиф 3 с Spring Boot 2, где мой код контроллера выглядит так:

@GetMapping("/bars/{pid}")
public List<Bar> findBypid(@PathVariable Integer pid, ... ) {
    Bar bar barService.findBypid(pid);
    // code omitted 
    // ......
}

Я не уверен, как ThymeLeaf может помочь здесь без использования JavaScript.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы не можете.HTML (и ThymeLeaf) просто не был создан, чтобы работать таким образом.Вы можете использовать JavaScript или добавить специальные методы контроллера, которые перенаправляют на правильный URL.Примерно так, например:

@GetMapping("/bars")
public String forwarder(@RequestParam String pid) {
    return "redirect:/bars/" + pid;
}

@GetMapping("/bars/{pid}")
public List<Bar> findBypid(@PathVariable Integer pid, ... ) {
    Bar bar barService.findBypid(pid);
    // code omitted 
    // .
    // .
    // .
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...