【问题标题】:Format a JSF converted value格式化 JSF 转换值
【发布时间】:2013-03-26 12:43:09
【问题描述】:

今天我注意到 ocpsoft 有一个很好的 time library 适合在 JSF 2 中用作转换器。这样做的优点是您可以直接在视图中显示的日期中使用转换器,并将其转换为一个字符串,告诉用户6 hours ago17 hours from now 之类的内容。我认为我最好将两者结合起来,JSF 转换日期和这个日期以显示类似26-03-2013 17:00 (4 hours from now) 的内容。我可以使用以下代码实现类似的功能:

<h:outputText value="#{task._StartDate}" style="padding:2px;">
    <f:convertDateTime pattern="dd-MM-yyyy HH:mm" timeZone="GMT+1" />
</h:outputText>
<h:outputText value="#{task._StartDate}">
    <f:converter converterId="org.ocpsoft.PrettyTimeConverter" />
</h:outputText>

当我想将第二个值放入括号时,我的问题就出现了。 PrettyTimeConverter 只接受一个日期作为值,我不能直接在那里写括号。 JSF 也不接受以下内容:

<h:outputFormat value="({0})">
    <f:param value="#{task._StartDate}">
        <f:converter converterId="org.ocpsoft.PrettyTimeConverter" />
    </f:param>
</h:outputFormat>

我有以下错误:

<f:converter> Parent not an instance of ValueHolder: 
javax.faces.component.UIParameter@1492636

您知道如何避免使用特定的h:outputText 标签来实现这两个括号吗?

【问题讨论】:

    标签: jsf converter


    【解决方案1】:

    您可以直接将这些括号放在模板文本中,而无需另一个 &lt;h:outputText&gt;s。

    <h:outputText value="#{task._StartDate}" style="padding:2px;">
        <f:convertDateTime pattern="dd-MM-yyyy HH:mm" timeZone="GMT+1" />
    </h:outputText>
    (<h:outputText value="#{task._StartDate}">
        <f:converter converterId="org.ocpsoft.PrettyTimeConverter" />
    </h:outputText>)
    

    另见:

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      相关资源
      最近更新 更多