데이터를 전달, 출력하기

김민서·2025년 9월 3일

SpringBoot

목록 보기
6/9

데이터를 템플릿에 전달하기

@RequiredArgsConstructor 애너테이션
Lombok이 제공하는 애너테이션으로, final이 붙은 속성을 포함하는 생성자를 자동으로 만들어주는 역할을 한다. 따라서 스프링부트가 내부적으로 QuestionController를 생성할 때 롬복으로 만들어진 생성자에 의해 questionRepository 객체가 자동으로 주입됨.

그리고 QuestionRepository의 findAll 메서드를 사용하여 질문 목록 데이터인 questionList를 생성하고 Model 객체에 questionList라는 이름으로 저장한다. 여기서 Model 객에는 자바클래스와 템플릿 간의 연결고리 역할을 한다. Model 객체는 따로 생성할 필요 없이 컨트롤러의 메서드에 매개변수에 지정하기만 하면 스프링 부트가 자동으로 Model 객체를 생성한다.

데이터를 화면에 출력하기

질문 목록을 HTML의 테이블 구조로 표시,

th: each="question : ${questionList}"

여기서 th:는 타임리프에서 사용하는 속성임을 나타낸다. 타임리프는 Model 객체에 저장한 questionList를 '${questionList}'로 읽을 수 있다.

자주 사용하는 타임리프의 3가지 속성 알기

1. 분기문 속성

th: if="${question != null}"
이 경우, question 객체가 null이 아닌 경우에만 이 속성을 포함한 요소가 표시된다.

2. 반복문 속성

th:each="question : ${questionList}"
th:each="question, loop : ${questionList}"

3. 텍스트 속성

th:text="${question.subject}"

텍스트는 다음처럼 대괄호를 사용해서 값을 직접 출력할 수 있음.

[[${question.subject}]] [[${question.createDate}]]

0개의 댓글