我无法在primefaces数据表中对日期进行排序。
<p:dataTable id="tabl" var="stu" value="#{student.fetchData()}"
sortBy="#{stu.dateOfBirth}" sortOrder="ascending" >
按日期排序,但订单不正确。它排序像字符串但不是日期。如何在dataTable中按日期排序?
答案 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