您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

无法将查询字符串参数映射到我的JavaBean(使用Spring 4和Datatables)

无法将查询字符串参数映射到我的JavaBean(使用Spring 4和Datatables)

好的,因此我通过稍微修改发送到服务器的参数将两个3D列数组转换为2D数组来解决此问题。所以:

columns[0][search][value]=myvalue
columns[0][search][regex]=false

最终是:

columns[0][searchValue]=myvalue
columns[0][searchRegex]=false

这是在Databables中执行的操作:

$('#produtosTable').DataTable({
    serverSide: true,
    ajax: {
        "url": "produtos-source",
        "data": function(data) {
            planify(data);  
        } 
    }
});

function planify(data) {
    for (var i = 0; i < data.columns.length; i++) {
        column = data.columns[i];
        column.searchRegex = column.search.regex;
        column.searchValue = column.search.value;
        delete(column.search);
    }
}

这样,我可以使用以下字段在模型对象中接收这些属性

private List<Map<ColumnCriterias, String>> columns;

仅供参考,这是我的控制器:

@RequestMapping(value = "/produtos-source", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public ProdutoTable dataTableRequest(@modelattribute DataTableCriterias criterias) {
    ProdutoTable produtoTable = produtosService.findProdutos();
    produtoTable.setDraw(criterias.getDraw());
    return produtoTable;
}

这是我的DataTableCriterias @ModelAttriute的最终版本:

public class DataTableCriterias {
    private int draw;
    private int start;
    private int length;

    private Map<SearchCriterias, String> search;

    private List<Map<ColumnCriterias, String>> columns;

    private List<Map<OrderCriterias, String>> order;

    public enum SearchCriterias {
        value,
        regex
    }
    public enum OrderCriterias {
        column,
        dir
    }
    public enum ColumnCriterias {
        data,
        name,
        searchable,
        orderable,
        searchValue,
        searchRegex
    }

(省略/设置)

java 2022/1/1 18:15:51 有528人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶