Как передать параметры как часть HTTP-запроса в таблице данных jquery в контроллер начальной загрузки - PullRequest
0 голосов
/ 19 мая 2019

Я новичок в веб-разработке.Мне нужно передать параметры в HTTP-запросе из JQuery Datatable вызова AJAX для контроллера весенней загрузки.

Представляю, я передаю параметры в URL, но это проблема безопасности.Поэтому я пытаюсь передать в HTTP-запрос.

Это мой настоящий код jquery

$("button#search").click(function() {
    var name = $("#name").val();
    var age = $("#age").val();
    var url = "/searchCustomer/search?name="+name+"&age="+age;
    $('#customerTable').DataTable({
    "type": "GET",
    "ajax": url,
    "cache": false,
    "bDestroy":true,
    "aLengthMenu": [20, 50, 70, 100],
    "columns":[
    {"data": "customerid" },
    {"data": "name"},
    {"data": "mobilenumber"},
    {"data": "status"},
    ],
    "language": {
    "lengthMenu": "| View _MENU_ records per page",
    "zeroRecords": "No matching records found",
    "infoEmpty": "No records available",
    "infoFiltered": "(filtered from _MAX_ total records)"
    },
    "pagingType": "full_numbers",
    });
});````

Java code:

````@RequestMapping(value = "/searchCustomer/search", method = RequestMethod.GET)   
    public @ResponseBody JSONObject getCustomers(@RequestParam(required = false) String name,@RequestParam(required = false) String age, Model model) {
    List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
    JSONObject ajson = new JSONObject();
    //Map<String, Object> map = new LinkedHashMap<String, Object>();
    //my logic here
    //list1.add(map);
    ajson.put("data", list1);
    retrun json;
    }````

I am excepting get parameters from HTTP request in Controller.

1 Ответ

0 голосов
/ 19 мая 2019

На ваш запрос в комментариях приведен код, который поможет вам достичь цели.Обратите внимание на использование параметра data для DataTables().

$("button#search").click(function() {
  $('#customerTable').DataTable({
    ajax: "/searchCustomer/search",
    data: {
      name: $("#name").val(),
      age: $("#age").val()
    }
    cache: false,
    bDestroy: true,
    aLengthMenu: [20, 50, 70, 100],
    columns: [{
        data: "customerid"
      },
      {
        data: "name"
      },
      {
        data: "mobilenumber"
      },
      {
        data: "status"
      },
    ],
    language: {
      lengthMenu: "| View _MENU_ records per page",
      zeroRecords: "No matching records found",
      infoEmpty: "No records available",
      infoFiltered: "(filtered from _MAX_ total records)"
    },
    pagingType: "full_numbers",
  });
});

С точки зрения вашей Java вы не предоставили достаточно подробностей, но решение простое, следуя руководству Spring.io по созданию сервисов RESTful с помощью Spring.Код вашего контроллера будет выглядеть примерно так:

@PostMapping("/search")
  Customer search(@RequestBody SearchParams searchParams ) {
    return repository.findOne(searchParams);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...