2014-12-19 29 views
1

我在Spring MVC中使用了DataTables 1.10。当使用服务器端处理时,它将一组参数发送给控制器。它是一个二维数组,但列是像这样的字符串:用于DataTable服务器端处理的DataStructure

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?任何建议?

回答

1

您可以更改数据(特别是搜索是3dimension部分),您发送到服务器,并让他们都为一个二维数组。接下来,您可以轻松使用this link来创建您的DTO。

0

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

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

如何处理列[0] [搜索] [正则表达式]? –

+0

你应该在你的dto类中有一个字段,就像这个私人列表>>; –

+0

and in controller: 布尔searchRegex = dataTableOptionsDto.getColumns()。get(0).get(“search”)。get(“regex”); –

1
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; 
    } 
}