primefaces dataTable按日期排序不起作用

时间:2014-12-04 12:48:45

标签: jsf primefaces

我无法在primefaces数据表中对日期进行排序。

 <p:dataTable id="tabl" var="stu" value="#{student.fetchData()}"
 sortBy="#{stu.dateOfBirth}" sortOrder="ascending" >

按日期排序,但订单不正确。它排序像字符串但不是日期。如何在dataTable中按日期排序?

2 个答案:

答案 0 :(得分:1)

尝试按dateOfBirth.time排序

<p:dataTable id="tabl" var="stu" value="#{student.fetchData()}"
 sortBy="#{stu.dateOfBirth.time}" sortOrder="ascending" >

答案 1 :(得分:0)

诀窍在于,您需要输入 Date 类型的列表,即List<Date>(请注意,如果您的List是String类型的,它将不起作用。 第二个重要步骤是使用<f:convertDateTime pattern="dd.MM.yyyy" />

<h:outputText value="#{(<From the backing you are getting the date here>)}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>

对于您来说,它应该像List<Date> dateOfBirth而不是List<String>。 因此,如果您打印日志,则在表单支持bean中,即使您以 E MMM dd HH:mm:ss Z yyyy 格式获取日期,例如 Tue May 21 10:47:34 IST 2019 没关系,您不必担心,因为该日期将转换为相应的日期格式,您可以通过在xhtml文件中使用<f:convertDateTime>来转换该日期格式。

我尝试了这个,对我有用。如果您有其他解决方案,请随时分享:) 详细说明:dateFormatter