Управлять календарным годом в HTML - PullRequest
0 голосов
/ 23 ноября 2011

Вместо того, чтобы жестко кодировать годы в моем выпадающем списке, я собираюсь передать год как первое значение параметра, а затем хочу, чтобы следующие 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 Ответ

3 голосов
/ 23 ноября 2011

Вы можете получить текущий год в EL следующим образом:

<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />

(теперь он доступен как ${year})

Вы можете сделать цикл вJSP с использованием <c:forEach>:

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

. В качестве параметров будет отображаться текущий год и 2 предыдущих года.

...