如何在没有JavaScript的情况下获取URL中的路径变量而不是表单Submit get请求中的查询参数?

时间:2019-02-11 17:53:43

标签: html spring-boot thymeleaf

我的格式是:

<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如何解决此问题?我在Spring Boot 2上使用了百里香3,其中我的控制器代码如下:

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

我不确定在不使用JavaScript的情况下ThymeLeaf如何在这里提供帮助。

1 个答案:

答案 0 :(得分:1)

不能。 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 
    // .
    // .
    // .
}