【问题标题】:What is the cleanest way to display a java.util.Calendar object in JSF?在 JSF 中显示 java.util.Calendar 对象的最简洁方法是什么?
【发布时间】:2011-04-13 17:09:14
【问题描述】:

我们有一个带有java.util.Calendar 对象的对象。我们希望在 JSF 页面上显示数据(最好采用与 java.util.Date 对象相同的格式)。似乎应该有一些干净的方法来做到这一点,而不是创建一个包装类来将日历转换为日期。

在 JSF 页面中显示 java.util.Calendar 中的日期/时间的最简洁方式是什么?

【问题讨论】:

    标签: jsf calendar


    【解决方案1】:

    使用Calendar 自己的getter Calendar#getTime()。它返回一个Date。然后你可以像往常一样使用<f:convertDateTime>

    <h:outputText value="#{bean.calendar.time}">
        <f:convertDateTime type="both" dateStyle="long" />
    </h:outputText>
    

    【讨论】:

    • 哇!让我想知道我是如何像往常一样在这个行业中取得成功的。谢谢 BalusC!
    • 是否有一种干净的方法可以向后执行此操作并获取输入的字符串并使用 &lt;f:convertDateTime&gt; 将其转换为 Calendar 对象?
    • @BalusC 难道不是这样吗?
    • @JakeLong 我认为 BalusC 想说的是,没有默认的方法可以做到这一点。随时创建您自己的转换器,从支持 bean 转换为 JSF (getAsString) 并从 JSF 转换为支持 bean (getAsObject)。这里有一个小教程。 mkyong.com/jsf2/custom-converter-in-jsf-2-0
    【解决方案2】:

    对于其他人和@seangates:如果使用日历对象,您可以应用模式。例如

    <h:outputText value="#{bean.calendar.time}" styleClass="date">
        <f:convertDateTime pattern="EEEE, MMMM d yyyy" />
    </h:outputText>
    &nbsp;
    <h:outputText value="#{bean.calendar.time}" styleClass="time">
        <f:convertDateTime pattern="hh:mm" />
    </h:outputText>
    

    【讨论】:

      【解决方案3】:

      如果您需要更多文本:

      <h:outputFormat
          value="#This my date: {0,date,long}">
          <f:param value="#{bean.calendar.time}" />
      </h:outputFormat>
      

      见:https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html

      【讨论】:

        猜你喜欢
        • 2011-12-18
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 2010-09-08
        • 2011-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多