2015-08-28 3 views
0

Мне нужно показать первую дату следующего и предыдущего месяца, есть ли способ получить его с помощью JSTL. Чистый JSTL является предпочтительным.Получить первый день следующего и предыдущего месяца в JSTL

Я мог бы получить завтра, как показано ниже.

<jsp:useBean id="ourDate" class="java.util.Date"/> 
<jsp:setProperty name="ourDate" property="time" value="${ourDate.time + 86400000}"/> 
<fmt:formatDate value="${ourDate}" pattern="dd/MM/yyyy"/> 

Я не мог получить первый день месяца.

+0

проверить мои последние изменения – CrazyProgrammer

ответ

1

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, тогда ваш лучший выбор готовит их в сервлете.

Смежные вопросы