我在我的Spring项目中使用thymeleaf作为模板引擎。
我的问题是:我正在尝试将我的表单提交到包含两个变量的url,例如:
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})}">
真正的问题是:数据库的属性为空。这没有意义。我解决了这个问题。
您的解决方案使用标准语法并且看起来正确。您可以尝试使用连接的解决方法:
更新:
尝试将变量的名称更改为id
以外的名称。我怀疑有一个JIRA可能会导致问题。您也可以使用@ModelAt和
进行注释。您还应该确保您使用的是最新版本的Spring。
此外,您可以执行@PostMaps("/{id}/bla")
试试这个方法对我很有效
<a th:href="@{/this/istheurl(parameter1 = val1, parameter2 = val2) }">
真正的问题是:数据库的属性为空。这没有意义。我解决了这个问题。