게시판 만들기 - 2
@Controller
@RequestMapping("/question")
@RequiredArgsConstructor
public class QuestionController {
private final QuestionRepository questionRepository;
@GetMapping("/list")
public String list(Model model) {
List<Question> questionList = questionRepository.findAll();
model.addAttribute("questionList", questionList);
return "question_list";
}
}
- list는 질문 목록을 전부 가져와야하기 때문에 questionRepository의 findAll() 을해서 리스트를 전부 가져온 후 model에 넣어줘서 html에 전달되게 해준다.
- 연결된 question_list.html에 값이 넘어온 것을 each문으로 나오게 해준다.
<table xmlns:th="http://www.w3.org/1999/xhtml">
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
<tr th:each="question : ${questionList}">
<td>
<a th:href="@{|/question/detail/${question.id}|}" th:text="${question.subject}"></a>
</td>
<td th:text="${question.createDate}"></td>
</tr>
</tbody>
</table>
- 변경 예정
- 현재는 question list를 보여주기만 하고 바꿔줄 예정
QuestionService 추가
- controller가 repository에 직접 접근하지 않고 서버를 통해서 데이터 처리를 위해서 추가
- controller 가 직접 접근해서 데이터를 가져올 때 민감한 정보가 포함될 수 있기 때문에 Service에서 필요한 데이터를 정제해서 Dto로 보내주는 형식을 사용하자.
@Service
@RequiredArgsConstructor
public class QuestionService {
private final QuestionRepository questionRepository;
public List<Question> getList() {
return questionRepository.findAll();
}
}
- 현재는 질문 목록만 필요하기 때문에 질문 목록 처리만 가져오기.