Primefaces Datatable Date列过滤

时间:2015-05-27 07:41:05

标签: jsf jsf-2 primefaces

如何在dd // mm / yyyy模式中过滤Datatable中的Date列? 我使用的是Primefaces 5.2社区版。

<p:column sortBy="#{user.date}" styleClass="date"
    filterBy="#{user.date}" id="date">

        <h:outputText value="#{user.date}">
            <f:convertDateTime type="date" pattern="dd/MM/yyyy" />
        </h:outputText>
        <p:watermark for="@(.date)" value="#{msg['dateOfBirth']}" />

</p:column>

没有转换器的过滤工作,但转换器不再起作用

2 个答案:

答案 0 :(得分:0)

这对我来说很好。

<p:column headerText="Data " filterBy="#{user.date}">
    <h:outputText value="#{user.date}" />

但可能我不知道你的真正问题是什么。

编辑。

我复制粘贴的代码,它对我来说很好......

<p:column sortBy="#{odczyt.data_odczytu}" 
filterBy="#{odczyt.data_odczytu}" id="date">
    <h:outputText value="#{odczyt.data_odczytu}">
        <f:convertDateTime type="date" pattern="dd/MM/yyyy" />
    </h:outputText>
    <p:watermark for="@(.date)" value="#{msg['dateOfBirth']}" />

您必须记住,过滤器不会以转换格式显示您的日期,而是以来自您的支持bean的原始形式。 因此,当你在“yyyy-MM-dd”中约会时,格式和使用转换器&#39; pattern =&#34; dd / MM / yyyy&#34;&#39;,在过滤器字段中u必须使用与原始bean格式相同的模式,例如&#39; 2015-05- 03&#39 ;.

答案 1 :(得分:-2)

不要在视图中格式化日期,而是将其转换并格式化为支持bean的字符串。

视图

 <p:column sortBy="#{user.dateAsString}" styleClass="date" 
      filterBy="#{user.dateAsString}" id="date">
    <h:outputText value="#{user.dateAsString}">
 </p:column>

支持豆

public String getDateAsString() {
    Format formatter = new SimpleDateFormat("dd/mm/yyyy");
    return formatter.format(date);
}