2

今日、 ocpsoftには、 JSF2でコンバーターとして使用するように適合された素晴らしいタイムライブラリがあることに気づきました。その長所は、ビューに表示された日付でコンバーターを直接使用でき、それをユーザーにまたはのような文字列に変換できることです。私の最善は、JSF変換日とこれの両方を組み合わせてのようなものを表示することだと思います。次のコードで同様のことを実現できます。6 hours ago17 hours from now26-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>

私の問題は、2番目の値を括弧に入れたいときに発生します。は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タグを使用して両方の括弧を書くことを避けてそれを達成する方法についてのアイデアはありますか?

4

1 に答える 1

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>)

参照:

于 2013-03-26T12:56:20.217 に答える