如何以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>
没有转换器的过滤工作,但有了转换器就不再工作了
这对我来说很好。
<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'格式的日期并使用转换器'模式="dd/MM/yyyy"'时,在过滤器字段中你必须使用与原始bean格式相同的模式,例如'2015-05-03'。
不要在视图中格式化日期,而是在后台bean中将日期转换为字符串。
视图 <p:column sortBy="#{user.dateAsString}" styleClass="date"
filterBy="#{user.dateAsString}" id="date">
<h:outputText value="#{user.dateAsString}">
</p:column>
支持bean public String getDateAsString() {
Format formatter = new SimpleDateFormat("dd/mm/yyyy");
return formatter.format(date);
}