써먹는 웹개발

[Thymeleaf] DataTable에 목록 조회를 Map 리턴과 model 전송하는 각각의 방법 본문

Client/Thymeleaf

[Thymeleaf] DataTable에 목록 조회를 Map 리턴과 model 전송하는 각각의 방법

kmhan 2021. 12. 21. 16:54


728x90
반응형

Thymeleaf의 사용방법을 모른다면 1번처럼 하게되고, 조금이라도 안다면 2번처럼 개발하게 된다.

 

1. 목록에서 Map 형식으로 리턴 방법

 1) Controller

  ※ 서비스에서 List 리턴

1
2
3
4
    @GetMapping("/userIdList")
    public Map<String, List> userIdList(Model model) {
        return manageService.userIdList();
    }
cs

 2) js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    $.ajax({
        type: 'GET',
        url: '/userIdList',
        contentType:'application/json',
        dataType: "json",
        success : function(data) {
            var result = data.result;
            var tbodyStr = "";
            for(var i=0;i<result.length;i++){
                tbodyStr += '<tr>';
                for(var j=0;j<result[0].length;j++){
                    tbodyStr += '<td>';
                    tbodyStr += result[i][j];
                    tbodyStr += '</td>';
                }
                tbodyStr += '</tr>';
            }    
            $('#tbody').html(tbodyStr);
        }
    })
cs

 

2. model 전송 방법

 1) Controller

1
2
3
4
5
6
    @RequestMapping("/manage-user-id")
    public ModelAndView userIdPage(Model model) {
        model.addAttribute("userList", manageService.userIdList());
        ModelAndView mav = new ModelAndView("userId");
        return mav;    
    }
cs

 2) html (thymeleaf)

1
2
3
4
5
6
7
8
<tbody id="tbody">
   <tr th:each="user, status: ${userList}">
     <td th:text="${user[0]}">
     <td th:text="${user[1]}">                                            
<td th:text="${user[2]}">
    <td th:text="${user[3]}">
   </tr>
</tbody>
cs
728x90
반응형


Comments