DataStructure для обработки на стороне сервера DataTable
Я использую DataTables 1.10 с Spring MVC. При использовании обработки на стороне сервера он отправляет набор параметров в контроллер. Это набор двухмерного массива, но столбец является строкой, подобной этой:
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]=
Как я могу представить это как DTO в Java? Любое предложение?
3 ответа
Решение
Вы можете изменить данные (особенно часть поиска, которая является 3-мерной), которые вы отправляете на сервер, и сделать их все в виде 2-мерного массива. Далее вы можете легко использовать эту ссылку для создания своего DTO.
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;
}
}
Это может быть идея для решения проблемы.
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);
}
}