점프 투 스프링부트를 참고하여 학습,작성하였습니다.
1.버튼 제작
static 에 부트스트랩을 추가한뒤 btn btn-primary 클래스를 적용한 버튼 제작
<a th:href="@{/question/create}" class="btn btn-primary">질문 등록하기</a>
2.매핑
컨트롤러에 create url 에 매핑한다.
@GetMapping("/create")
public String questionCreate() {
return "question_form";
}
3.매핑된 템플릿 제작
질문등록을 위한 HTML 파일을 만든다.
질문내용을 등록시 post로 질문을 등록한다.
<html layout:decorate="~{base}">
<div layout:fragment="content">
<h5>질문등록</h5>
<form th:action="@{/question/create}" method="post">
<label for="subject" class="form-label">제목</label>
<input type="text" name="subject" id="subject" class="form-control">
<p></p>
<label for="content" class="form-label">내용</label>
<textarea name="content" id="content" class="form-control" rows="10"></textarea>
<input type="submit" value="저장하기" class="btn btn-primary my-2">
</form>
</div>
4.포스트 매핑
포스트 매핑으로 /question/create을 추가하여 질문등록을 할수있게한다.
@PostMapping("/create")
public String questionCreate(@RequestParam(value="subject") String subject, @RequestParam(value="content") String content) {
// TODO 질문을 저장한다.
return "redirect:/question/list"; // 질문 저장후 질문목록으로 이동
}
5.서비스 만들기
QuestionService 클래스에 create 메소드를 추가해준다.
public void create(String subject, String content) {
Question q = new Question();
q.setSubject(subject);
q.setContent(content);
q.setCreateDate(LocalDateTime.now());
this.questionRepository.save(q);
}
해당 서비스를 이용하도록 컨트롤러에 추가한다.
@PostMapping("/create")
public String questionCreate(@RequestParam(value="subject") String subject, @RequestParam(value="content") String content) {
this.questionService.create(subject, content);
return "redirect:/question/list"; // 질문 저장후 질문목록으로 이동
}
'BackEnd > Spring' 카테고리의 다른 글
[Spring Boot] Validation 라이브러리 폼 (0) | 2024.07.04 |
---|---|
[Spring Boot] 표준 HTML 구조 상속 (0) | 2024.07.03 |
[Spring Boot] 답변기능 제작 (0) | 2024.07.03 |