기존 사용중이던 그리드를 데이터테이블로 변경 해야 할 일이 있었다. 무료로 제공되는 기능들이 다양하고 사용이 쉬워 좋았다. 그리고 기존 사용중이던 그리드에 비해 코드만 보고도 어떤 기능을 어떻게 고치면 될 지 상대적으로 알아보기 쉬워서 자주 사용하게 될 것 같다. 데이터가 많아지면 기본 페이징 방식으로는 속도가 저하되므로(그리드를 변경한 이유도 이 부분 떄문이다) 서버 사이드 페이징 방식으로 구현하였다.
뷰 설정
1 |
|
위와 같이 헤더 부분만 id를 지정해서 만들어 주면 html 영역에서 할 일은 끝이다. 이후 스크립트 부분을 이렇게 추가해주면 된다.
1 |
|
stateSave :
true 다른 페이지로 이동했다 돌아와도 정렬이나 페이지 수 등의 상태를 유지시켜주는 기능이다.pagingType :
[simple, simple_numbers, full, full_numbers] 네 종류가 있다. PREV/NEXT 만 표시할 지, 페이지 숫자도 함께 표시할 지 등을 정하는 옵션이다.paging :
true 페이징 옵션을 설정한다. false일 때, scroll Y 옵션을 같이 사용해주지 않으면 한 화면에 모든 row가 다 나오니 주의해야 한다.displayLength :
20 처음 페이지에 접근했을 때 한 페이지에 보여줄 게시물의 갯수. lengthChange로 사용자가 변경할 수 있다.lengthChange :
truelengthMenu :
[10,20,25,50,100] 리스트를 한 페이지에 몇 row씩 보여줄 지 선택 가능하도록 옵션을 제공한다.dom :
‘Bfrtip’,
buttons :
[“excel”] 엑셀, CSV, PDF 등 다운로드 기능을 제공한다. 전체 페이지 뿐만 아니라 검색 조건에 따른 다운로드도 가능함.processing :
true, serverSide: true 서버 사이드로 변경하기 위해 필요한 설정들responsive :
true 반응형 지원 여부bAutoWidth :
false,- l
anguage :
lang_kor 영어로 된 문구들을 원하는 내용으로 대체 가능하다. order :
[[0,”desc”], [8,”desc”]], ordering: true 정렬 기능. 원하는 필드의 오름차순/내림차순 설정이 가능하고 특정 항목은 정렬이 안 되도록 제외도 가능하다.searching :
false 데이터테이블의 검색기능은 입력한 내용을 즉시 검색하여 반영하기 때문에 현재 프로젝트와 맞지 않아 사용하지 않고, parameter를 넘겨서 검색하는 방식으로 따로 구현했다.destroy :
true 버튼 클릭(검색이나 새로고침 등) 등의 이벤트가 발생했을 때 새로 데이터를 로드 해준다.columns :
[ {“data”: “request_id”, orderable:false}, ] 각 head 아래에 들어갈 데이터들의 이름을 맞춰준다. 정렬 여부도 여기에서 설정이 가능하다.columnDefs:
[ { targets: ‘_all’, className: ‘visit_more_tac’ }, { targets: [2,5,7], width:90}, { targets: [1], width:75} ] }); 컬럼 별 css설정이나 class 부여 등이 필요할 때 여기에서 지정하면 된다. render 옵션도 사용 가능.
VO
1 |
|
클라이언트로 값을 보낼 때 필요한 VO다. 데이터테이블은 data라는 리스트 안에 키값이 들어있어야 컬럼을 인식해서 매칭할 수 있다.
1 |
|
위 항목들은 서버사이드 페이징과 정렬에 필요하다. start는 시작 번호, length는 시작지점에서부터 몇개씩 끊어서 가져 올 지(limit), sortDir은 오름차순/내림차순 설정, sortColumn은 컬럼명 선택에 필요하다.
Controller
1 |
|
Service
1 |
|
DAO
1 |
|
XML
1 |
|