【问题标题】:Date conversion in JSP via JSTL from XMLCalendar to util date在 JSP 中通过 JSTL 将日期从 XMLCalendar 转换为 util date
【发布时间】:2015-07-08 05:31:13
【问题描述】:

我正在尝试将 XMLCalendar 日期转换为正常日期格式,以便在 JSP 页面上呈现。使用以下标签时出现异常:

<fmt:formatDate value="${xmlCalendarDate}" pattern="dd/MM/yyyy" />

有了这个标签,我得到了异常

 java.lang.IllegalArgumentException: Cannot convert 2015-07-02T21:33:35Z of type class org.eclipse.emf.ecore.xml.type.internal.XMLCalendar to class java.util.Date

是否有任何其他标记或其他方法可以在我的 JSP 页面上呈现此日期。

提前致谢。

【问题讨论】:

    标签: jsp jstl jsp-tags


    【解决方案1】:
        <td data-title="Order Date">
            <fmt:formatDate value="${order.dateCreated.toGregorianCalendar().time}" pattern="yyyy/MM/dd HH:mm:ss" />
            <%--${order.dateCreated}--%>
        </td>
        <!--order status-->
        <td data-title="Order Status">
            <c:if test="${order.status.code=='CREATED'}">
                <spring:message code="web.page.order.create" />
            </c:if>
        </td>
        <%-- ${order.status.code}</td>--%>
        <!--quanity-->
        <td data-title="Total"><span class="f_size_large fw_medium scheme_color">${order.currency.symbol}${order.totalChargeAmount.price}</span>
        </td>
    </tr>
    

    【讨论】:

      【解决方案2】:

      这是XMLGregorianCalendar 的子类。您可以通过首先通过XMLGregorianCalendar#toGregorianCalendar() 获取java.util.Calendar 然后调用Calendar#getTime() 来从中获取java.util.Date

      因此,假设环境支持 EL 2.2,应该这样做:

      <fmt:formatDate value="${xmlCalendarDate.toGregorianCalendar().time}" pattern="dd/MM/yyyy" />
      

      如果您还没有使用 EL 2.2(这是 Servlet 3.0 / Java EE 6 的标准部分),那么您需要先在前端控制器中执行 XMLGregorianCalendarDate 的转换。

      Date date = xmlCalendarDate.toGregorianCalendar().getTime();
      // ...
      

      【讨论】:

        最近更新 更多