我在春季项目中使用百里香作为模板引擎。
我的问题:我试图将表单提交到包含两个变量的网址,例如:
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。这没有任何意义。我解决了这个问题。
答案 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