对不起标题,不知道如何说出来。我有一个表格,在表格中显示一些数据。
<form action="#" th:action="@{/do/stuff}" th:object="${foo}" method="post">
<table>
....
<tr th:each="currentFoo : *{fooList}">
<td>...<td>
<td>
<a th:href="'/anotherPage/' + ${currentFoo.getId()}">
<button>Go to Different page</button>
</a>
</td>
...
</table>
<button type="submit" value="submit">Submit</button>
</form>
然后是控制器:
@RequestMapping(value="/do/stuff", method = RequestMethod.POST)
public String processQuery(@ModelAttribute FooWrapper wrapper, Model model){....}
@RequestMapping(value="anotherPage/{fooID}", method=RequestMethod.GET)
public String getClient(@PathVariable int id, Model model){...}
问题在于,当我点击按钮&#34;转到不同的页面&#34;时,表单将被映射/do/stuff
发布并选中。
我如何才能有一个按钮,只需将我带到一个完全不同的页面,通过get
传递ID(将其视为可以选择编辑条目以及标准选项以发布所有条目)?我只需要访问页面anotherPage/{fooID}
我尝试添加一个按钮表单,希望它会覆盖父表单并对我想要的映射执行get
请求,但它没有工作,这一切都得到了被外表捡起来。
<form th:action="'/anotherPage/' + ${currentFoo.getID()}" style="display: inline" th:method="get">
<input type="submit" th:value="Go to Page" role="button" />
</form>
这甚至可能吗?如果必须,我甚至可以将子方法更改为post
,但父表单不能更改。
有什么建议?
更新 - 我找到并发布了一个解决方案,但直到明天我才能接受!
答案 0 :(得分:0)
原来有一个非常简单的解决方案。我认为点击的<button>...</button>
元素,因为它们在它们导致回发的表单中,而不管指定的URL。
然而,使用一个简单的超链接并将其作为一个按钮来解决问题:
<a th:href="'/anotherPage/' + ${currentFoo.getID()}" class="btn btn-default">Go to page</a>