在foreach循环中,我按如下方式设置curMonth
和curDisplayedMonth
:
<fmt:formatDate value="${curDate}" type="date" pattern="m" var="curMonth" />
<fmt:formatDate value="${curDate}" type="date" pattern="MMM" var="curDisplayedMonth" />
并将其作为
列在下拉列表中<option value="<c:out value="${curMonth}"/>" <c:if test="${selectedMonth == curMonth}">selected</c:if>>
<c:out value="${curDisplayedMonth}"/>
</option>
但它格式化为Jan:
并且选项中的值是正确的:
答案 0 :(得分:0)
type
和pattern
属性是互斥的。你使用其中一个,但不能两个都使用。
type
属性只是指定某些常见模式的便捷方式。
如果您想使用pattern
,则应删除type="date"
属性。
答案 1 :(得分:0)
您需要更正pattern
选项。要使用JSTL formatDate显示月份,请使用以下选项:
<%-- Displays numeric month (ex: 1) --%>
<fmt:formatDate value="${curDate}" pattern="M" />
<%-- Displays two-digit numeric month (ex: 01) --%>
<fmt:formatDate value="${curDate}" pattern="MM" />
<%-- Displays the month abbreviation (ex: Jan) --%>
<fmt:formatDate value="${curDate}" pattern="MMM" />
<%-- Displays the full month name (ex: January) --%>
<fmt:formatDate value="${curDate}" pattern="MMMM" />
另外,在上面的示例中:
<fmt:formatDate value="${curDate}" type="date" pattern="m" var="curMonth" />
pattern="m"
代表分钟。