gpt4 book ai didi

java - 使用 JSTL 在 Select 标签中填充所选项目?

转载 作者:行者123 更新时间:2023-11-28 05:07:08 25 4
gpt4 key购买 nike

我在 JSP 中使用以下代码将生日月份作为值存储在数据库中。

<select name="birthday_month" id="birthday_month">
<option value="-1">Month</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
...
</select>

在 JSP 中输出代码以使用我正在使用的 JSTL(这是不正确的)显示先前选择的项目

<select name="birthday_month" id="birthday_month">
<c:forEach var="value" items="${birthdaymonth}">
<option value="${birthdaymonth}">${birthdaymonth}</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
...
</c:forEach>
</select>

我从这段代码中得到的值是 select 标记中的 1 或 2

其他信息:

  1. 我在数据库中将生日月份存储为 1、2、3 等值,表示一月、二月、三月……
  2. 我在 Servlet 的请求范围内使用生日月份的值
    request.setAttribute("birthdaymonth", user.getBirthdayMonth());

我在想什么

  1. 当我稍后显示 JSP 时,它应该将以前存储的生日月份显示为一月、二月、三月而不是 1、2、3,并且还显示其他选项值,包括突出显示的选定项目。

最佳答案

要动态迭代月份集合,您希望将月份存储在 Map<Integer, String> 中。其中键是月份编号,值是月份名称。制作 HTML <option>元素默认选中,需要设置selected属性。

因此,假设您有一个 Map<Integer, String> months和一个 Integer selectedMonth在范围内,则应执行以下操作:

<select name="birthday_month">
<c:forEach items="${months}" var="month">
<option value="${month.key}" ${month.key == selectedMonth ? 'selected' : ''}>${month.value}</option>
</c:forEach>
</select>

条件运算符 ?:将打印 selectedselectedMonth等于当前迭代的月份数。

关于java - 使用 JSTL 在 Select 标签中填充所选项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090146/

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