복붙노트

[SPRING] DataTables 서버 쪽 페이지 매김

SPRING

DataTables 서버 쪽 페이지 매김

클라이언트 측 페이지 매김을 사용하여 Spring REST 앱을 사용하고 있으며 기본적으로 DataTables가 있으며 모든 것이 작동합니다. 이제 클라이언트 가보고 싶은 페이지 번호를 DataTables에서 정보를 얻는 방법을 모르기 때문에 문제가있는 서버 측 페이지 매김으로 변경해야합니다. DT 매뉴얼에서 유용한 것을 찾을 수 없습니다.

해결법

  1. ==============================

    1.Datatable을 말할 때 DataTables jQuery 플러그인을 사용한다고 가정합니다.

    Datatable을 말할 때 DataTables jQuery 플러그인을 사용한다고 가정합니다.

    서버 쪽 페이지 매김을 활성화하려면 통과해야합니다

    "serverSide": true,
    

    이처럼 :

    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "/your_url"
    });
    

    위의 작업을 수행하면 서버 쪽 페이지 매김이 활성화됩니다. 그러나 서버 측에서도 약간의 변경이 필요합니다. 그것들을 단계별로 봅시다.

    DataTables 플러그인은 다음과 같은 정보로 AJAX 호출에 사용자 정의 매개 변수를 추가합니다

    order:  asc
    start:  20
    length: 10
    
    // and many more.
    

    이 문서 링크를 검사하고 다음 페이지 버튼을 클릭하면 요청에 전달 된 매개 변수를 볼 수 있습니다.

    "draw": 3,             // unique ID
    "recordsTotal": 57,    // total number of records
    "recordsFiltered": 57  // total number of filtered records
    

    이번에는 같은 링크를 조사해 응답 데이터를 볼 수 있습니다.

    컨트롤러 API에서 POST 호출에서 GET 및 attr에 대한 queryParam으로 다음 매개 변수를 추가해야합니다.

    order: asc
    start: 20
    length: 10
    

    데이터베이스에서 세부 정보를 얻는 서비스 계층.

    MySQ1의 경우 총 레코드 수를 가져 와서 조회에서 LIMIT 절 LIMIT 10, 10을 전달해야합니다.

    예 :

    SELECT * FROM User LIMIT 20,10;
    

    다음 레코드 세트를 계산하려면 시작 및 길이를 사용하십시오.

    까다로울 수 있지만 제대로 이해하고 구현하면 재미 있습니다.

  2. ==============================

    2.DataTables 서버 측 처리에 대한 샘플을 참조하십시오. https://datatables.net/examples/server_side/simple.html

    DataTables 서버 측 처리에 대한 샘플을 참조하십시오. https://datatables.net/examples/server_side/simple.html

    변경 페이지 후 다음 형식으로 요청을 서버에 캡처 할 수 있습니다. https : //.../server_processing.php? draw = 3 & columns ... & order = 0 & dir = asc & start = 20 & length = 10 & search % 5Bvalue % 5D = & search % 5Bregex % 5D = false & _ = 1534436781912

    이는 DataTable이 첫 번째 열 오름차순으로 페이지 번호 3 (draw = 3)을 요청 함을 의미합니다.

    서버 측 (REST)에서 request.getParameter ( "draw")를 사용하여 페이지 번호를 얻을 수 있습니다.

  3. from https://stackoverflow.com/questions/51881222/datatables-server-side-pagination by cc-by-sa and MIT license