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

}
Другие вопросы по тегам