JSTL имеет только теги к parse и format дата, а не манипулировать датой. Ваш лучший курорт - это EL (те ${}
вещей). Поскольку Servlet 3.0/EL 2.2 поддерживает выражения метода в JSP. Затем вы могли бы использовать среди других методы Calendar#set()
и Calendar#add()
. Правда, это взломанно, но поскольку вы просили «чистого JSTL», это лучше всего вы можете получить.
<jsp:useBean id="firstDayOfMonth" class="java.util.GregorianCalendar">
${firstDayOfMonth.set(5,1)}
</jsp:useBean>
<jsp:useBean id="firstDayOfPreviousMonth" class="java.util.GregorianCalendar">
${firstDayOfPreviousMonth.set(5,1)}
${firstDayOfPreviousMonth.add(2,-1)}
</jsp:useBean>
<jsp:useBean id="firstDayOfNextMonth" class="java.util.GregorianCalendar">
${firstDayOfNextMonth.set(5,1)}
${firstDayOfNextMonth.add(2,1)}
</jsp:useBean>
(эти выражения только для себя документальных целей вложенных внутри <jsp:useBean>
, они могут быть размещены снаружи, но это может быть более запутанным для начала, первый аргумент (5
соответственно 2
) является объектом. путь значение постоянного поля Calendar.DAY_OF_MONTH
и Calendar.MONTH
)
Теперь вы можете представить их, как показано ниже с помощью Calendar#getTime()
обычным способом:
<fmt:formatDate value="${firstDayOfMonth.time}" pattern="dd/MM/yyyy"/>
<fmt:formatDate value="${firstDayOfPreviousMonth.time}" pattern="dd/MM/yyyy"/>
<fmt:formatDate value="${firstDayOfNextMonth.time}" pattern="dd/MM/yyyy"/>
Если вы еще не на ЭЛ 2.2, тогда ваш лучший выбор готовит их в сервлете.
проверить мои последние изменения – CrazyProgrammer