今天我注意到 ocpsoft 有一个很好的time library适合在 JSF 2 中用作转换器。其中的优点是您可以直接在视图中显示的日期使用转换器,并将其转换为字符串,告诉用户类似6 hours ago
或17 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
标记编写两个括号的任何想法吗?
答案 0 :(得分:3)
您可以直接将这些括号放在模板文本中,而无需另外<h:outputText>
个。
<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>)