게시만 만들기 - 2

JIWOO YUN·2024년 4월 18일
0

게시판만들기

목록 보기
2/21
post-custom-banner

게시판 만들기 - 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();
    }
}
  • 현재는 질문 목록만 필요하기 때문에 질문 목록 처리만 가져오기.
profile
열심히하자
post-custom-banner

0개의 댓글