我在我的 Spring 项目中使用 thymeleaf 作为模板引擎。
我的问题是:我正在尝试将表单提交到包含两个变量的 url,例如:
mysite/bla/{id}/bla/{id2} (网址中的两个变量)。所以,我正在尝试这样做:
th:href="@{/bla/{id}/bla/{id2} (id=${object1.id}, id2=${object2.id})}"
控制台显示错误:
“由于请求包含同名的绑定值,因此正在跳过 URI 变量“id”。”那么,有人知道发生了什么事吗?
Update:
我更改了一个变量的路径,只是为了进行一些测试,但问题仍然发生。控制器非常简单:
@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})}">
真正的问题:数据库的一个属性变为空。这毫无意义。我解决这个问题。
您的解决方案使用标准语法并且看起来正确。您可以通过串联尝试此解决方法:
<a th:href="${'/blah1/' + {object1.id} + '/blah2/' + {object2.id}}">some link</a>
UPDATE:
尝试将变量的名称更改为其他名称id
。有一个JIRA https://jira.spring.io/browse/SPR-9349我怀疑这可能会引起问题。您还可以使用注释@ModelAttribute
。您还应该确保您使用的是最新版本的 Spring。
另外,你可以这样做@PostMapping("/{id}/bla")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)