为一年的每个循环反向 JSTL(使用下拉列表)
Reverse JSTL for each loop for year (using dropdown)
我想创建一个从当前年份开始的下拉菜单,或者至少从 2016 年开始到 1900 年结束
我只有这段代码正确,但不能正常工作。
<select id="year" name="year">
<c:forEach begin="1900" end="2016" var="val">
<c:set var="decr" value="${2016-val}"/>
<option value="${decr}" ${birthYear == decr ? 'selected' : ''}>${decr}</option>
</c:forEach>
</select>
试试这个。
<select id="year" name="year">
<c:forEach begin="0" end="116" var="val">
<c:set var="decr" value="${2016 - val}"/>
<option value="${decr}" ${birthYear == decr ? "selected='selected'": ''}>${decr}</option>
</c:forEach>
</select>
另一种解决方案,使用动态加载current year
。
在 jsp 文件的顶部添加以下内容,以加载 fmt taglib
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
然后使用以下命令创建一个名为 year
的变量,其值为当前年份。
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
最后,使用这个值,以便以更有效的方式创建您想要的 select
选项。
<select id="year" name="year">
<c:forEach begin="0" end="${year-1900}" var="age">
<option value="${age}" ${birthYear == age ? "selected='selected'": ""}>${age}</option>
</c:forEach>
</select>
我想创建一个从当前年份开始的下拉菜单,或者至少从 2016 年开始到 1900 年结束
我只有这段代码正确,但不能正常工作。
<select id="year" name="year">
<c:forEach begin="1900" end="2016" var="val">
<c:set var="decr" value="${2016-val}"/>
<option value="${decr}" ${birthYear == decr ? 'selected' : ''}>${decr}</option>
</c:forEach>
</select>
试试这个。
<select id="year" name="year">
<c:forEach begin="0" end="116" var="val">
<c:set var="decr" value="${2016 - val}"/>
<option value="${decr}" ${birthYear == decr ? "selected='selected'": ''}>${decr}</option>
</c:forEach>
</select>
另一种解决方案,使用动态加载current year
。
在 jsp 文件的顶部添加以下内容,以加载 fmt taglib
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
然后使用以下命令创建一个名为 year
的变量,其值为当前年份。
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
最后,使用这个值,以便以更有效的方式创建您想要的 select
选项。
<select id="year" name="year">
<c:forEach begin="0" end="${year-1900}" var="age">
<option value="${age}" ${birthYear == age ? "selected='selected'": ""}>${age}</option>
</c:forEach>
</select>