gpt4 book ai didi

java - 打印输出从 arraylist 接收到的下拉列表中的值

转载 作者:行者123 更新时间:2023-11-30 05:25:47 24 4
gpt4 key购买 nike

我正在为我的应用程序制作一些前端表单,它将管理家庭收入和结果(家庭预算)。
要添加特定的收入,用户必须选择收入类别,例如:薪水/销售/礼物等。
在用 HTML 准备收入表格时,我想将 venueCategory 作为下拉列表打印,以让用户选择可用的选项之一。
该列表是从后端服务接收的,它是 arrayList。
我面临的问题是打印下拉列表中 venueCategory 对象的描述值。我发现的每个教程都是硬编码的,例如:

<select name="carlist" form="carform">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>

我尝试做的是:

<div><label for="incomeCategory" >Category:</label>
<select name="incomeCategory" form="incomeCategory">
<tr th:each="temp :${incomeCategories}">
<option value="${temp}" >${temp.description}</option>
</tr>
</select>
<input type="hidden" id="incomeCategory"/>
</div>

我想做一些你在第四行看到的事情。
venueCategory 类有两个属性:

public class IncomeCategory{

private Long id;
private String description;
// constructor, getters, setters
}

此时,当我的列表中有 3 个项目时,类别循环工作正常:
enter image description here
是否有可能使用 HTML 和 Thymeleaf 在下拉列表中打印类别描述?
提前感谢您的帮助。

最佳答案

在您的代码中,您没有设置 th:text属性和 thymeleaf 渲染 <option> 中的文本标签(即 ${temp.description})作为文本。您应该使用 th:text thymeleaf 属性让 thymeleaf 知道它是一个动态值。还上了th:value您已经设置了对象引用(temp),您应该使用 temp.id 代替。

假设您已将 IncomeCategories 列表作为模型属性传递到 Controller 中,请将选项标记更改为以下内容

<option value="Sample" th:each="temp :${incomeCategories}" 
th:value="${temp.id}" th:text="${temp.description}">Sample Description</option>

使用 Thymeleaf,您可以在标签内循环。我添加了示例和示例描述文本,这样您只需在浏览器中加载 HTML 页面即可呈现下拉列表,而无需通过 servlet 容器。

关于java - 打印输出从 arraylist 接收到的下拉列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58643808/

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