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
RESP 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"/>
如果你还没有使用EL 2.2,那么你最好的选择是准备一个servlet。
检查我的最新编辑 – CrazyProgrammer