gpt4 book ai didi

java - Thymeleaf 下拉选择

转载 作者:行者123 更新时间:2023-11-29 04:37:53 24 4
gpt4 key购买 nike

我正在为我的一个 Java 项目使用 Thymeleaf。现在,我想要实现的是,当我从下拉列表中选择其他内容,而不是默认值“ALL”时,然后按提交按钮 [POST],以获取有关所选项目的详细信息。提交后,我想在下拉列表中保留所选项目。而它现在所做的,它返回到默认值。如果我将提供的代码添加到 selected 属性下方,那么它会从列表中选择所有项目,这也是 Not Acceptable ,因为它最终总是显示列表的最后一项。

<div class="controls">
<select class="form-control" name="example" id="example">
<option value="0">ALL</option>
<option th:each="user : ${allUsers}" th:value="${user.id}" th:text="${user.name}">
</option>
</select>
</div>

我的 Controller 获取列表,我尽可能简单:

@ModelAttribute("allUsers")
public List<User> allUsers() {
List<User> userList= repo.findAll();
return userList;
}

另外我想说明一下,我的目的是:

<form class="form-search" action="#" method="post"
th:action="@{/combinedsearch}"
th:object="${combinedreport}">

所以使用这样的东西的想法行不通

<select th:field="*{user}"> ,因为我的对象实际上没有 User 作为字段。

有什么想法吗?帮忙?

最佳答案

基本上我所做的是在一个 combinedReport Controller 中,我提取了我在提交 HTML 表单后收到的 user_ID,然后我将它用于后端需要做的任何事情,然后我将该 user_id 发送回前端结束,只需将它作为属性添加到模型中:

model.addAttribute("lastselected", userId);

然后我在用户对象中创建了自定义逻辑方法:

public boolean isSelected(Integer userId){
if (userId != null) {
return userId.equals(id);
}
return false;
}

然后我将 thymeleaf 模板中的代码修改为:

<select class="form-control" name="example" id="example">
<option value="0">ALL</option>
<option th:each="user : ${allUsers}"
th:value="${user.id}"
th:selected="${user.isSelected(lastselected)}"
th:text="${user.name}">
</option>
</select>

然后咩咩!它就像一个魅力!

关于java - Thymeleaf 下拉选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40472243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com