jsp에서 쉽게 차트나 그래프를 표현할 수 있는 api이며, 여러 모양이나 형태로도 손쉽게 구현이 가능하다.
1. Controller에 데이터를 담음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Model model) { PercentVO percentVO = new PercentVO(); percentVO.setYesPercent("40"); percentVO.setNoPercent("60"); System.out.println("debug> percentVO : " + percentVO); model.addAttribute("percentVO", percentVO); return "home"; } } | cs |
yesPercent에 40, noPercent에 60이라는 값이 들어있는 PercentVO 모델이 있다고 가정한다.
2. jsp Highcharts 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %> <html> <head> <title>Highcharts Example</title> <!-- Highchars CDN --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script type="text/javascript"> $(function() { // body > div 부분에 적은 id를 파라미터로 직접 넘긴다. Highcharts.chart('container', { chart: { plotBackgroundColor: null, plotBorderWidth: 0, plotShadow: false, height: 500 }, title: { text: '', align: 'center', verticalAlign: 'bottom', y: -300, x: -80 }, credits: { enabled: false }, tooltip: { pointFormat: '{series.name}: <b>{point.percentage: 1f}%</b>' }, plotOptions: { pie: { dataLabels: { enabled: true, distance: -50, style: { fontWeight: 'bold', color: 'white', fontSize: '15px' } }, startAngle: -90, endAngle: 90, center: ['50%', '75%'] } }, series: [{ // Highcharts를 pie 형태로 구현했다. type: 'pie', name: '응답률', innerSize: '20%', /* data: [name:'params1', value:'params2'] 의 형태이다. name과 value는 생략이 가능하며, 'params1'과 'params2' 값만 적어도 무방하다. * 주의 * => Highcharts로 표현하려는 값이 변수일 경우에는 반드시 JSON.parse() 함수 안에 변수 값을 적어야 한다. */ data: [ ['YES(${percentVO.yesPercent}%)', JSON.parse('${percentVO.yesPercent}')], ['NO(${percentVO.noPercent}%)', JSON.parse('${percentVO.noPercent}')], ] }] }); }); </script> </head> <body> <div id="container" style="min-width:350px;height:200px;max-width:250px;margin:0 auto"></div> </body> </html> |
실제로 작업 당시 series의 data 부분에 변수를 넣어야 했는데 아무리 검색을 해도 나오지 않았고, JSON 형태로 담아야 파라미터가 출력된다는 검색 결과들에 힌트를 얻어 해결할 수 있었다.
'FrontEnd > JavaScript & jQuery' 카테고리의 다른 글
JavaScript :: 팝업창에서 스크롤 사용하기 (0) | 2017.12.12 |
---|---|
jQuery :: 유효성 검사 함수 모음 (0) | 2017.09.27 |
jQuery:: 제이쿼리를 이용한 테이블 동적 rowspan / colspan (0) | 2017.08.01 |
Jquery :: document.ready() vs window.load() 차이 (1) | 2016.10.04 |
Jquery :: text() vs html() 차이 (0) | 2016.10.03 |