Thymeleaf th:each 반복문

이로률·2023년 11월 1일

Thymeleaf

목록 보기
6/6
post-thumbnail

1. DB 연동

은 .. 알아서 ..

2. DTO 생성

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class MemberDTO {
    private int id;
    private String pw;
    private String name;
    private String role;
}

3. mapper.xml

resources에 폴더 생성 후 xml 작성
resources/mapper/mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace = "com.app.test.mapper.MemberMapper">
    <select id="memberList" resultType="com.app.test.model.MemberDTO">
        select * from member 
        order by id asc;
    </select>
</mapper>

4. mapper.java

@Mapper
public interface MemberMapper {
    public List<MemberDTO> memberList();
}

5. service.java

@Service
public class MemberService {
    @Autowired
    MemberMapper mapper;

    public List<MemberDTO> getMemberList(){
        return mapper.memberList();
    }
}

6. Controller.java

@Controller
public class HomeController {
	@Autowired
    private MemberService memberService;
    
    @GetMapping("/")
    public String main(Model model){
        List<MemberDTO> list = memberService.getMemberList();
        model.addAttribute("memberList", list); //모델에 저장
        return "main";
    }
}
    

이런식으로 멤버 리스트를 가져와서 model에 원하는 변수명으로 저장한다(나는 memberList라고 저장함)

7. html

6-1) table에서 th:each문

  • item, i 여기서 i는 인덱스값
<tr th:each="item, i : ${memberList}">
	<td th:text="${item.name}"></td>
</tr>

6-2) select에서 th:each문

<select id="name" class="selectpicker show-tick" data-live-search="true" name="id">
	<option th:each="item, i : ${memberList}" th:value="${item.id}" th:text="${item.name}"></option>
</select>

요러케 간단하게 할 수 있다리요~~~!!~!~!!!

profile
💻🧐💗💝💘💖

4개의 댓글

comment-user-thumbnail
2023년 12월 19일

정말 친절하세요ㅎㅎ 🐰💘

1개의 답글
comment-user-thumbnail
2023년 12월 19일

앙 기모띠

1개의 답글