Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 是否覆盖显示标记外部排序?_Sorting_Displaytag - Fatal编程技术网

Sorting 是否覆盖显示标记外部排序?

Sorting 是否覆盖显示标记外部排序?,sorting,displaytag,Sorting,Displaytag,我使用的是显示标签和SpringMVC。 基本上,我有一个这样的简单表格。注意使用外部 <display:table id="tableId" name="data" sort="external" defaultsort="1" sort="external"> <display:column property="id" title="ID" sortable="true" sortName="id" /> <display:column prop

我使用的是显示标签和SpringMVC。 基本上,我有一个这样的简单表格。注意使用外部

    <display:table id="tableId" name="data" sort="external" defaultsort="1" sort="external">
  <display:column property="id" title="ID" sortable="true" sortName="id" />
  <display:column property="firstName" sortable="true" sortName="firstName" title="First Name" />
  <display:column property="lastName" sortable="true" sortName="lastName" title="Last Name" />
  <display:column property="address" sortable="true" sortName="address" title="Email Address"/>
</display:table>
要获取订单(ASC/DESC):

这一切都很好。在最后一步中,我使用定制的comparator对列表进行排序,并将其放回映射到表的属性“data”(请参见显示标记“name”属性)中

public void populateModel(模型模型,HttpRequest请求){
字符串c=request.getAttribute(新参数编码(“tableId”).encodeParameterName(TableTagParameters.PARAMETER_-SORT));
//这里比较器是用列和顺序值eg计算的
Comparator comp=新的DefaultComparator();
如果(c==1){
comp=新的数值比较器();
}
List=Collection.sort(dao.getEmployee(),comp);
model.addAttribute(“数据”,列表);
//在这里,列表已正确排序
返回“mypage”;
}
不幸的是,最终jsp中的显示并不关心列表中的顺序。它似乎是一个默认的字母数字排序器…所以即使我使用我的NumericComparator列仍然是错误的排序,我认为“列表”对象已排序前的Librarie回来显示

综上所述:

  • 获取显示标记索引:ok

  • 对列表进行排序并将其放回jsp:ok(列表根据控制器中的显示标记参数进行排序)

  • 使用Display标记在jsp端显示已排序的列表:KO(库不关心列表顺序,使用默认排序对其排序)

  • 在jsp端显示排序后的列表,不带显示标记:OK


  • 有人对此进行了解释,是否有错误或遗漏?

    是否希望
    String c=request.Parameter(新参数编码(“tableId”).encodeParameterName(TableTagParameters.Parameter_SORT))
    而不是request.getAttribute(..);不,我得到了所有的参数。一切都很好。问题是在jsp中,库不关心自定义排序,我不理解为什么。。。如果我显示没有显示标记的列表,则排序顺序为fine您不需要
    String c=request.Parameter(新参数coder(“tableId”).encodeParameterName(TableTagParameters.Parameter_sort))
    而不是request.getAttribute(..);不,我得到了所有的参数。一切都很好。问题是在jsp中,库不关心自定义排序,我不理解为什么。。。如果我显示没有显示标记的列表,排序顺序就可以了
    String c = request.getAttribute(new ParamEncoder("tableId").encodeParameterName(TableTagParameters.PARAMETER_SORT));
    
      String order = request.getAttribute(new ParamEncoder("tableId").encodeParameterName(TableTagParameters.PARAMETER_ORDER)));
    
    public void populateModel(Model model, HttpRequest request){
         String c = request.getAttribute(new ParamEncoder("tableId").encodeParameterName(TableTagParameters.PARAMETER_SORT));
    
        // here the comparator is computed with column and order value eg
        Comparator comp = new DefaultComparator();
        if(c == 1){
             comp  = new NumericComparator();
        }
        List<Employe> list = Collection.sort(dao.getEmployee(), comp );
        model.addAttribute("data", list);
    
        // here the list is sorted properly
    
        return "mypage";           
     }