서비스 프레임워크 설명서 |
이제 자동완성, 인기 검색어 및 최근 검색어 위젯을 추가해 보자.
먼저 인기 검색어와 최근 검색어가 표시될 영역을 <div> 태그로 만든다.
1. … 2. <div class="col-md-3"> 3. <div class="box box-bordered"> 4. <div class="box-header box-header-small"> 5. <div class="title">인기검색어</div> 6. </div> <%-- 인기 검색어 위젯이 삽입될 위치 --%> 7. <div id="rankings" class="box-content"></div> 8. </div><!--//.box--> 9. <div class="box box-bordered"> 10. <div class="box-header box-header-small"> 11. <div class="title">최근검색어</div> 12. </div> <%-- 최근 검색어 위젯이 삽입될 위치 --%> 13. <div id="recent" class="box-content"></div> 14. </div><!--//.box--> 15. </div><!--//.col-md-3--> 16. …
다음 자동완성, 인기 검색어, 최근 검색어 위젯을 각각 실행한다.
1. … 2. <link rel="stylesheet" href="css/bootstrap.min.css"> 3. <link rel="stylesheet" href="css/themename/jquery-ui.custom.css"/> 4. <link rel="stylesheet" href="css/konan.sf.css"/> 5. … 6. <script src="js/ jquery.js"></script> 7. <script src="js/bootstrap.min.js"></script> 8. <script src="js/ jquery-ui.custom.js"></script> 9. <script src="js/ jquery.pagination.js"></script> 10. <script src="js/ jquery.cookie.js"></script> 11. <script src="js/ jquery.konan.sf.js"></script> 12. <script src="js/ i18n/jquery.konan.sf-ko.js"></script> 13. … 14. <script> 15. $(function() { 16. $("#query").autocomplete({ 17. source: "http://localhost:7612/ksf/api/suggest?target=complete"}); 18. $("#rankings").rankings({url: "http://localhost:7612/ksf/api/rankings"}); 19. $("#recent").recent(); 20. … 21. }); 22. </script> 23. …
자동완성, 인기 검색어, 최근 검색어 등 서비스 프레임워크 위젯을 사용하기 위해서는 몇 가지 의존성이 있는 파일들(jQuery, jQuery UI, jQuery Cookie plugin, jQuery KSF)을 링크해야 한다. 기본적으로 아래 7가지 파일들을 추가하면 jQuery 서비스 프레임워크 위젯들을 사용할 수 있다.
1. <link rel="stylesheet" href="css/themename/jquery-ui.custom.css"/> 2. <link rel="stylesheet" href="css/konan.sf.css"/> 3. <script src="js/jquery.js"></script> 4. <script src="js/jquery-ui.custom.js"></script> 5. <script src="js/jquery.cookie.js"></script> 6. <script src="js/jquery.konan.sf.js"></script> 7. <script src="js/i18n/jquery.konan.sf-ko.js"></script>
일단 필요한 파일들을 포함하면 페이지 내에 서비스 프레임워크 위젯을 추가할 수 있다. 예를 들어 자동완성 위젯을 추가하기 위해서는 텍스트 입력 엘리먼트에 대해 아래와 같이 .autocomplete()를 호출하면 된다.
<input type="text" name="query" id="query"/>
$("#query").autocomplete({source:"http://localhost:7612/ksf/api/ suggest?target=complete"});
서비스 프레임워크 위젯들의 데모 및 자세한 사용 방법은 서비스 프레임워크 웹페이지의 위젯 섹션을 참고한다.
최근 검색어 위젯의 경우에는 웹 서버에 검색 요청 시 검색어를 저장하는 코드를 추가해야 한다. 이를 위해 아래와 같이 검색 폼 제출 시 최근 검색어를 저장하는 코드를 추가한다 (14~16라인). 또한, 인기 검색어 및 최근 검색어 클릭 시 검색이 수행되도록 이벤트 핸들러를 추가한다 (10~13라인). 마지막으로 자동완성 메뉴에서 검색어를 선택할 때도 검색이 수행되도록 이벤트 핸들러를 추가한다. (4~7라인).
1. $(function() { 2. $("#query").autocomplete({ 3. source: "http://localhost:7612/ksf/api/suggest?target=complete"}); // 자동완성 메뉴에서 검색어 선택 시 검색 수행 4. $("#query").on("autocompleteselect", function(event, ui) { 5. $("#query").val(ui.item[0]); 6. $("form[name=search-form]").submit(); 7. }); 8. $("#rankings").rankings({url: "http://localhost:7612/ksf/api/rankings"}); 9. $("#recent").recent(); // 인기 검색어 및 최근 검색어 클릭 시 검색 수행 10. $("#rankings, #recent").on("click", "a", function() { 11. $("#query").val($(this).text()); 12. $("form[name=search-form]").submit(); 13. }); // 검색 폼 제출 시 최근 검색어를 저장한다. 14. $("form[name=search-form]").submit(function(event) { 15. $("#recent").recent("add", $("#query").val()); 16. }); 17. … 18. });
작성된 JSP를 실행한다.