Thymeleaf + Spring 如何从表单 select 选项值向控制器传递 @PathVariable
Thymeleaf + Spring how to pass to a controller a @PathVariable from a form select option value
我想使用 select 框重定向到包含 select 值的 URL。
这里是带有 thymeleaf 变量的 HTML 页面:
<form th:action="@{/app/}">
<select id="app" name="app">
<option th:each="app : ${apps}"
th:value="${app.id}"
th:text ="${app.name}">
</option>
</select>
<button>Go</button>
</form>
控制器写法如下:
@RequestMapping("/app/{appId}")
public ModelAndView getApp(@PathVariable String appId){...}
我的目标是使用 URL 访问控制器:mydomain/app/{app.id}/
我尝试在 select 上使用 th:field
但没有成功。我在这里遗漏了一些东西。
拜托,你能解释一下如何将 select 值添加到控制器期望的 URL 中吗?
感谢您的提示
编辑@NicolaiEhemann 回答
我使用 jquery 和 ajax 移动到 javascript :
$('button').click(function() {
$.ajax({
url: '/app/' + $('#app').val(),
dataType: 'html'
}).done(function(data) {
$('#result').html(data)
});
});
谢谢。
Thymeleaf 只会生成静态 html 代码。要实现您想要的效果,您必须编写客户端 javascript 来处理 'input' 事件以在选择不同的值时更改表单操作,或者处理表单 'submit' 事件以覆盖表单提交的默认操作。相关的js代码可能会依赖于你使用的框架。
简单地说,将路径变量添加到带有双uderscores的表单操作中
即用 <form th:action="@{/app/__${app.id}__">
替换 <form th:action="@{/app/}">
来源:http://forum.thymeleaf.org/Sending-pathvariable-to-controller-td4028739.html
我想使用 select 框重定向到包含 select 值的 URL。
这里是带有 thymeleaf 变量的 HTML 页面:
<form th:action="@{/app/}">
<select id="app" name="app">
<option th:each="app : ${apps}"
th:value="${app.id}"
th:text ="${app.name}">
</option>
</select>
<button>Go</button>
</form>
控制器写法如下:
@RequestMapping("/app/{appId}")
public ModelAndView getApp(@PathVariable String appId){...}
我的目标是使用 URL 访问控制器:mydomain/app/{app.id}/
我尝试在 select 上使用 th:field
但没有成功。我在这里遗漏了一些东西。
拜托,你能解释一下如何将 select 值添加到控制器期望的 URL 中吗?
感谢您的提示
编辑@NicolaiEhemann 回答
我使用 jquery 和 ajax 移动到 javascript :
$('button').click(function() {
$.ajax({
url: '/app/' + $('#app').val(),
dataType: 'html'
}).done(function(data) {
$('#result').html(data)
});
});
谢谢。
Thymeleaf 只会生成静态 html 代码。要实现您想要的效果,您必须编写客户端 javascript 来处理 'input' 事件以在选择不同的值时更改表单操作,或者处理表单 'submit' 事件以覆盖表单提交的默认操作。相关的js代码可能会依赖于你使用的框架。
简单地说,将路径变量添加到带有双uderscores的表单操作中
即用 <form th:action="@{/app/__${app.id}__">
<form th:action="@{/app/}">
来源:http://forum.thymeleaf.org/Sending-pathvariable-to-controller-td4028739.html