在HTML中处理日历年

时间:2011-11-23 18:57:07

标签: html jsp jstl el

不是在我的下拉列表中硬编码年份,而是将作为第一个选项值超过一年,然后希望以下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>

如果不对这些年进行硬编码,我怎么能这样做?

1 个答案:

答案 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>

这将显示当前年份和前两年作为选项。