首页 > 解决方案 > 使用 url 发送多个变量

问题描述

我正在尝试调用我的 REST 服务来创建供应商。我需要itemCode提供的物品和username想要创建它的物品。现在,我这样称呼它:

th:href="@{/api/supplier/getSupplierViewItem/{username}(username = ${username})/{itemCode}(itemCode = ${item.itemCode})}

然后,我的控制器应该得到那个请愿书:

    @GetMapping("/getSupplierViewItem/{username:.+}/{itemCode:.+}")
    public String getSupplierViewwithItem(@PathVariable("username")String username, @PathVariable("itemCode") String itemCode, ModelMap model){
        model.addAttribute("username", username);
        model.addAttribute("itemCode", itemCode);
        return "createSupplier";
    }

但是,当我尝试时,我收到以下请愿书:

http://localhost:8080/api/supplier/getSupplierViewItem/%7Busername%7D(username%20=%20$%7Busername%7D)/01231

基本上,我得到的不是用户名的值

{username}(username = ${username})

发送这两个参数的最佳方式是什么?

标签: spring-bootthymeleaf

解决方案


您的网址的正确语法是:

th:href="@{/api/supplier/getSupplierViewItem/{username}/{itemCode}(username=${username},itemCode=${item.itemCode})}"

请参阅多个参数的标准 url 语法


推荐阅读