如何将参数从ajax传递给thymeleaf和Spring



我正在做一个项目,我试图做一个级联下拉使用ajax。

我设法做到了实现,但我不知道如何从第二个下拉传递选定的id到使用thymeleaf的控制器,以显示有关选定机场的信息。

脚本如下:

function retrieveAirports() {
$.ajax({
url: '/countries/airports?countryId=' + $('#countrySelect option:selected').val(),
type: 'get',
contentType: 'application/json',
success: function (result) {
var $dropdown = $("#airportSelect");
var $id = $("#airportId");
$dropdown.empty();
$.each(result, function() {
$dropdown.append($("<option/>").val(this.id).text(this.name));
});
},
error: function () {
// what do you want to do in case of error
}
});
}

这是下拉菜单的实现。首先,我们有国家

<select id="countrySelect" onchange="retrieveAirports()">
<option selected value="-1"></option>
<option th:each="country : ${countries}" th:value="${country.id}" th:text="${country.name}">Option</option>
</select>

这个是机场下拉菜单,这个的结果取决于从第一个传递给脚本的id。

<form th:action="@{/airport}" method="post" th:object="${airportSelect}">
<select id="airportSelect">
<option selected value="-1"></option>
</select>
<input type="submit" value="Send"/>
</form>

有人能帮帮我吗?

谢谢!

添加一个name到机场选择器,例如airport:

<form th:action="@{/airport}" method="post" th:object="${airportSelect}">
<select id="airportSelect" name="airport">
<option selected value="-1"></option>
</select>
<input type="submit" value="Send"/>
</form>

然后,当您点击提交按钮时,路径/airport的Spring控制器将被调用,airport作为POST参数。例如:

@Controller
public class AirportController {

@PostMapping("/airport")
public View viewAirport(@RequestParam("airport") int airport) {
// ...
}
}

相关内容

  • 没有找到相关文章

最新更新