Question
package com.mysite.sbb.question;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class QuestionController {
@GetMapping("/question/list")
public String list() {
return "question_list";
}
}
서버 실행하기
view가 없으니까 당연히 에러가 나오는게 맞음
템플릿 에 넣고 jsp를 안씀
템플릿 설정하기
일반적으로 많이 사용하는 방식은 템플릿 방식이다. 템플릿은 자바 코드를 삽입할 수 있는 HTML 형식의 파일이다.
템플릿을 어떻게 사용할수 있는지 알아보자. 스프링부트에서 사용할수 있는 템플릿 엔진에는 Thymeleaf, Mustache, Groovy, Freemarker, Velocity 등이 있다. 이 책에서는 스프링 진영에서 추천하는 타임리프(Thymleaf) 템플릿 엔진을 사용할 것이다.
- 타임리프 - https://www.thymeleaf.org/
타임리프를 사용하려면 설치가 필요하다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>질문 리스트</title>
</head>
<body>
<h2>헬로우 타임리프</h2>
</body>
</html>
VScode에서 작성함
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>질문 리스트</title>
</head>
<body>
<h2>헬로우 타임리프</h2>
<table>
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
<tr th:each="question : ${qList}">
<td th:text="${question.subject}"></td>
<td th:text="${question.createDate}"></td>
</tr>
</tbody>
</table>
</body>
</html>
QuestionController
package com.mysite.sbb.question;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class QuestionController {
@Autowired
private QuestionRepository qRepo;
@GetMapping("/question/list")
public String list(Model model) {
List<Question> qList = qRepo.findAll();
model.addAttribute("qList", qList);
return "question_list";
}
}
기본페이지는 질문목록 페이지로 경로 설정
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
@GetMapping("/")
@ResponseBody
public String index() {
return "redirect:/question/list";
}
}
'BACKEND > SpringBoot' 카테고리의 다른 글
답변 등록하기 (0) | 2023.11.09 |
---|---|
Question 서비스 생성 및 상세보기 페이지 (0) | 2023.11.08 |
패키지 도메인 별 분리하기 (0) | 2023.11.08 |
답변 AnswerRepository 생성 및 데이터 저장 ,검색 (0) | 2023.11.08 |
Repository , JUnit 테스트 (0) | 2023.11.08 |