2015-08-28 93 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只有標記爲parseformat的日期,而不是操縱日期。你最好的度假村是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 RESP 2)是由。恆場Calendar.DAY_OF_MONTHCalendar.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"/> 

如果你還沒有使用EL 2.2,那麼你最好的選擇是準備一個servlet。

相關問題