【问题标题】:DataStructure for the DataTable server side processingDataTable 服务器端处理的数据结构
【发布时间】:2014-12-19 14:51:06
【问题描述】:

我在 Spring MVC 中使用 DataTables 1.10。当使用服务器端处理时,它会向控制器发送一组参数。它由二维数组组成,但列是这样的字符串:

columns[0][data]=
columns[0][name]=
columns[0][orderable]=false
columns[0][search][regex]=false
columns[0][search][value]=
columns[0][searchable]=true
columns[1][data]=
columns[1][name]=
columns[1][orderable]=false
columns[1][search][regex]=false
columns[1][search][value]=
columns[1][searchable]=true
order[0][column]=4
order[0][dir]=desc
order[1][column]=4
order[1][dir]=desc
search[regex]=false
search[value]=

如何在 Java 中将其表示为 DTO?有什么建议吗?

【问题讨论】:

    标签: java spring-mvc datatables dto


    【解决方案1】:

    您可以更改发送到服务器的数据(尤其是 3 维的搜索部分),并将它们全部设为 2d 数组。接下来,您可以轻松地使用this link 创建您的 DTO。

    【讨论】:

    【解决方案2】:
    public class Columns {
        private int index;
        private String data;
        private String name;
        private boolean orderable;
        private Search search;
        private boolean searchable;
    
        public Columns(int index) {
            this.index = index;
        }
    
        public Columns(int index, boolean orderable, Search search,boolean searchable) {
            this.index = index;
            this.orderable = orderable;
            this.search = search;
            this.searchable = searchable;
        }
    }
    
    public class Search {
        private boolean regex;
        private int value;
    
        public Search(boolean regex) {
            this.regex = regex;
        }
    }
    
    public class Order {
        private int index;
        private int column;
        private String dir;
    
        public Order(int index) {
            this.index = index;
        }
    
        public Order(int index, int column, String dir) {
            this.index = index;
            this.column = column;
            this.dir = dir;
        }
    }
    

    【讨论】:

      【解决方案3】:

      这可能是解决问题的一个想法。

      public class DataTableOptionsDto implements Serializable {
      
          private static final long serialVersionUID = 1012699939925216984L;
      
          private List<Map<String, Object>> columns;
      
          private List<Map<String, Object>> order;
      
          private Map<String, Object> search;
      
          // add getters and setters
      
      }
      
      @Controller
      public class SearchController{
      
          @RequestMapping("/search")
          public String search(DataTableOptionsDto dataTableOptionsDto){
              //do some things here
              return jsonBuilder.json(searchData);
          }
      
      }
      

      【讨论】:

      • 如何处理列[0][搜索][正则表达式]?
      • 您的 dto 类中应该有一个字段,例如私有 List>>;
      • 在控制器中:Boolean searchRegex = dataTableOptionsDto.getColumns().get(0).get("search").get("regex");
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多