使用数据表进行搜索不适用于弹簧数据(Searching with datatable is not working with spring data)

编程入门 行业动态 更新时间:2024-10-06 15:20:54
使用数据表进行搜索不适用于弹簧数据(Searching with datatable is not working with spring data)

我用数据表使用弹簧数据看起来像搜索不起作用。

服务方控制器

@GetMapping("cars") @ResponseBody public Map<String, Object> getCars(@RequestParam("draw") Integer draw, @RequestParam(value = "search", defaultValue = "") String search, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "order", required = false) String direction, @RequestParam(value = "sort", required = false) String sortProperty) { search is alway null ... }

客户端

var url = "/cars"; $('#carsTable').DataTable({ 'bLengthChange': false, 'processing': true, 'serverSide': true, 'pagingType': 'simple_numbers', 'dom': 'Bfrtip', 'ajax': { 'type': 'get', 'url': url, 'data': function (d) { var current = $('#carsTable').DataTable(); d.page = (current != undefined) ? current.page.info().page : 0; d.size = (current != undefined) ? current.page.info().length : 5; d.sort = d.columns[d.order[0].column].data; d.order = d.order[0].dir; } }, 'columns': [ {'data': 'id'}, {'data': 'buildDate'}, {'data': 'brand'}, {'data': 'model'}, {'data': 'color'} ] });

Url通过数据表生成,不知道是否有可能有更干净的网址?

http://localhost:8080/cars?draw=6&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=buildDate&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=brand&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=model&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=color&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&order=asc&start=0&length=10&search%5Bvalue%5D=honda1&search%5Bregex%5D=false&page=0&size=10&sort=id&_=1524671861781

I use spring data with datatable Seem like search is not working.

Serve side controller

@GetMapping("cars") @ResponseBody public Map<String, Object> getCars(@RequestParam("draw") Integer draw, @RequestParam(value = "search", defaultValue = "") String search, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "order", required = false) String direction, @RequestParam(value = "sort", required = false) String sortProperty) { search is alway null ... }

Client side

var url = "/cars"; $('#carsTable').DataTable({ 'bLengthChange': false, 'processing': true, 'serverSide': true, 'pagingType': 'simple_numbers', 'dom': 'Bfrtip', 'ajax': { 'type': 'get', 'url': url, 'data': function (d) { var current = $('#carsTable').DataTable(); d.page = (current != undefined) ? current.page.info().page : 0; d.size = (current != undefined) ? current.page.info().length : 5; d.sort = d.columns[d.order[0].column].data; d.order = d.order[0].dir; } }, 'columns': [ {'data': 'id'}, {'data': 'buildDate'}, {'data': 'brand'}, {'data': 'model'}, {'data': 'color'} ] });

Url generated by datatable, don't know if it's possible to have a cleaner url?

http://localhost:8080/cars?draw=6&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=buildDate&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=brand&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=model&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=color&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&order=asc&start=0&length=10&search%5Bvalue%5D=honda1&search%5Bregex%5D=false&page=0&size=10&sort=id&_=1524671861781

最满意答案

d.order = d.order[0].dir;

d.search=d.search.value;

否则你所有的领域都有一个领域的搜索...

after

d.order = d.order[0].dir;

add

d.search=d.search.value;

otherwise all you field have a field search...

更多推荐

本文发布于:2023-07-09 10:27:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1085624.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弹簧   数据表   不适用于   数据   Searching

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!