Java 如果使用<;t:列>;在JSF中?

Java 如果使用<;t:列>;在JSF中?,java,jsf,tomahawk,Java,Jsf,Tomahawk,我正在学习tomahawk,我只想知道我是否使用生成一个数据表,然后如何在点击特定列的标题时对数据表进行排序,就像我们在普通属性中使用的一样。请帮忙。一种可能是使用jQuery插件排序。看 另一种方法是使用t:dataTable和t:commandSortHeader如您所述 <t:dataTable id="data" value="#{BACKINGBEAN.DATA}" var="item" ... sortable="true" rows="10"> 使

我正在学习tomahawk,我只想知道我是否使用
生成一个数据表,然后如何在点击特定列的标题时对数据表进行排序,就像我们在普通
属性中使用的
一样。请帮忙。

一种可能是使用jQuery插件排序。看

另一种方法是使用t:dataTablet:commandSortHeader如您所述

<t:dataTable  
id="data"  
value="#{BACKINGBEAN.DATA}"  
var="item"  
...  
sortable="true"
rows="10">

使用t:datatable,您实际上不需要t:commandSortHeader,除非您想自定义它用于排序的属性

以下是使其正常工作所需的:

<h:form>
<t:dataTable
    id="data"
    value="#{BACKINGBEAN.DATA}"
    var="item"
    sortColumn="#{BACKINGBEAN.sortColumn}"
            sortAscending="#{BACKINGBEAN.sortAscending}">
使用默认的getter/setter/lombok。它们只是为了让标记可以设置数据

这是一个很好的参考:


但是它忽略了关于支持bean属性的讨论,而且即使没有任何表单元素,也需要将其包装在
中。

感谢您告诉jQuery中的可能性,但我想在没有它的情况下尝试一下,我的怀疑是,即使将其放入its中,也只能根据第一列进行排序,而不是单独的列。是的,你是对的。我猜,在检索列表之前,您需要在SQL端执行此操作。您需要
按some1 some2排序
apache wiki也没有提到当您的bean是
@RequestScoped
<t:column defaultSorted="true" sortable="true">
    <f:facet name="header">
             <h:outputText value="header text"/>
    </f:facet>
    <h:outputText value="#{item.property}" />
</t:column>
</t:dataTable>
</h:form>
private String sortColumn;
private boolean sortAscending;