如何定义传递给控制器​​的路径变量(spring mvc)

How to define path variable to pass to controller (spring mvc)

我知道这会非常简单,但我不知道如何从表单中获取路径变量。

这是我在下面定义的表格:

<form:form action="dogs/" method="get">
            <div class="row">
                <div class="col-md-3">                  
                    <div class="input-group">
                    <div class="input-group-addon" style="background-color: transparent; border-right:0 solid transparent;"><span class="glyphicon glyphicon-search"></span></div>

                    <input type="text" class="form-control" placeholder="search by ID #" name="id" id="id" />
                    <div class="input-group-btn">
                    <input type="submit" class="btn btn-info" value="Go" />
                    <button class="btn btn-info" onclick="location.href='id'">Go</button>
                    </div>  
                    </div>              
                </div>
                    <br><br>
            </div>

        </form:form>

这是我的控制器方法,我想从中获取路径变量:

@RequestMapping(value ="dogs/{id}", method = RequestMethod.GET)
public String getDogId(@PathVariable(value ="id") Long value, Model model){
        return "";
 }

但是 url 我得到并导致错误如下:

http://localhost:8080/controller/dogs/dogs/?id=8

我要的是:http://localhost:8080/controller/dogs/8 我不知道如何将输入动态传递给按钮,甚至不传递给按钮而是传递给表单操作。任何帮助将不胜感激。

恐怕没有 javascript 的帮助你无法完成它。

编辑:这里有一个 jsfiddle 可以帮助您:https://jsfiddle.net/n588jL07/2/

function setURL(form) {
    form.action="dogs/"+form.urlVal.value;
    console.log(form.action);
    event.preventDefault();
}