具有多个变量的Thymeleaf URL

时间:2017-06-28 14:17:17

标签: java spring thymeleaf

我在春季项目中使用百里香作为模板引擎。

我的问题:我试图将表单提交到包含两个变量的网址,例如:

mysite / bla / {id} / bla / {id2}(url中的两个变量)。所以,我正在尝试这个:

th:href="@{/bla/{id}/bla/{id2} (id=${object1.id}, id2=${object2.id})}"

控制台显示错误:

"跳过URI变量' id'因为请求包含一个具有相同名称的绑定值。" 所以,有人有任何想法发生了吗?

更新

我将路径更改为一个变量,只是为了进行一些测试,问题仍然存在。控制器非常简单:

@PostMapping(value = "/{id}/bla")
    public ModelAndView salvarBug(MyObject object,
            @PathVariable("id") Long idObject1, Principal principal) {
                objectService.save(object);
                return new ModelAndView("redirect:"+idObject1);
    }

我也更新了html中的链接:

        <form method="POST" th:object="${object}"
            th:action="@{/{id}/bla (id=${object.id})}">

真正的问题:数据库的属性为null。这没有任何意义。我解决了这个问题。

3 个答案:

答案 0 :(得分:3)

您的解决方案使用标准语法并且看起来正确。您可以使用连接尝试此解决方法:

<a th:href="${'/blah1/' + {object1.id} + '/blah2/' + {object2.id}}">some link</a>

更新:

尝试将变量名称更改为id以外的其他名称。有一个JIRA关于这个,我怀疑可能会导致问题。您还可以使用@ModelAttribute进行注释。你还应该确保你使用最新版本的Spring。

此外,您可以@PostMapping("/{id}/bla")

答案 1 :(得分:1)

真正的问题:数据库的属性为null。这没有任何意义。我解决了这个问题。

答案 2 :(得分:1)

尝试此方法。对我有用

v2