不是在我的下拉列表中硬编码年份,而是将作为第一个选项值超过一年,然后希望以下2个值为前一年,依此类推。像这样:
<select name="workloadYear">
<option value="2008" <c:if test="${form.workloadYear == 2008}">selected="selected"</c:if>>2008</option>
<option value="2007" <c:if test="${form.workloadYear == 2007}">selected="selected"</c:if>>2007</option>
<option value="2006" <c:if test="${form.workloadYear == 2006}">selected="selected"</c:if>>2006</option>
</select>
如果不对这些年进行硬编码,我怎么能这样做?
答案 0 :(得分:3)
您可以按如下方式获取EL中的当前年份:
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
(它现在可用${year}
)
您可以使用<c:forEach>
在JSP中执行循环:
<select name="workloadYear">
<c:forEach begin="0" end="2" varStatus="loop">
<c:set var="currentYear" value="${year - loop.index}" />
<option value="${currentYear}" ${form.workloadYear == currentYear ? 'selected="selected"' : ''}>${currentYear}</option>
</c:forEach>
</select>
这将显示当前年份和前两年作为选项。