Spring MVC @PathVariable注释

时间:2018-01-10 01:42:35

标签: java spring jsp web

我正在努力解决其中一个春天的注释,那就是@PathVariable。我期待着为你们寻求帮助..

我的目标是让网址看起来像这样" ../ product / 1"而不是" ../ product?productId = 1",但我的主要问题是我想在文本框中输入ID号,然后用按钮提交。示例:如果我在文本框中键入1,我希望从我的数据库中接收包含id为1的元素的页面。

我在购物车页面时所有这一切。

我的代码

JSP文件

        <form:form class="form-inline my-2 my-lg-0" action="product" method="get">
            <input class="form-control mr-sm-2" type="text"  placeholder="Search" name="productId"/>
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form:form>

控制器

@Controller
@RequestMapping("/")
public class OrderController {

    @Autowired
    ProductService productService;

    @RequestMapping("/cart")
    public String showCart() {
    return "cart";
    }

    @RequestMapping(value = "/product/{productId}", method = RequestMethod.GET)
    public String getProductById(@PathVariable(value = "productId") int productId, Model model) {
        model.addAttribute("product", productService.findProductById(productId));
        return "product";
    }

}

1 个答案:

答案 0 :(得分:0)

您可以将按钮类型更改为button,并将javascript函数写为submitForm

<form:form class="form-inline my-2 my-lg-0" action="product" method="get">
                <input class="form-control mr-sm-2" type="text"  placeholder="Search" name="productId" id="productId"/>
                <button class="btn btn-outline-success my-2 my-sm-0" type="button" onclick="javascript:submitForm()">Search</button>
            </form:form>

在ajax请求中发送产品ID,如下所示

function submitForm(){
   var prodId = document.getElementById("productId").value;   
   $.ajax({
       url : '/product/'+prodId;
       ... 
  })
}