sayHello.jsp, login.jsp로 대충 어떻게 해야 하는지 알았을테니 이제 본격적으로 투두리스트를 만들어 볼 것이다.
언제나 그랬듯이 todo 패키지를 만들고 그 안에 todo와 관련된 걸 모조리 쑤셔넣는다.
Todo.java, TodoController.java, TodoService.java 이렇게 세 가지 파일을 만들어볼 건데, Todo와 TodoService를 먼저 만들어보자.
Todo에는 id, username, description, targetDate, done 이렇게 세 가지 멤버변수를 가지고 있다고 하자.
```
public class Todo {
private int id;
private String username;
private String description;
private LocalDate targetDate;
private bool done;
// IDE 기능으로 생성자, 게터, 그리고 세터 생성
}
```
그리고 Todo를 기반으로 TodoService를 만들어보자.
```
public class TodoService {
private static List<Todo> todos = new ArrayList<>();
static {
todos.add(new Todo(1, "in28minutes", "Learn AWS", LocalDate.now().plusYear(1), false));
todos.add(new Todo(2, "in28minutes", "Learn DevOps", LocalDate.now().plusYear(1), false));
todos.add(new Todo(3, "in28minutes", "Learn Full Stack Development", LocalDate.now().plusYear(1), false));
}
public List<Todo> findByUsername(String username) {
return todos;
}
}
```
이제 TodoController를 작성해보자. 투두리스트 페이지 url은 list-todo라 가정하자.
```
@Controller
public class TodoController {
@RequestMapping("list-todo")
public String listAllTodos() {
return "listTodos";
}
}
```
오류 나는 일이 없도록 listTodos.jsp를 만들어보자.
```
<html>
<head>
<title>List Todos Page</title>
</head>
<body>
<div>Welcome~!</div>
<div>Your todos are ${todos}</div>
</body>
</html>
```
이제 todos를 채워서 jsp에 보내자. 이전처럼 로직은 service에 작성할 것이다.
```
@Controller
public class TodoController {
public TodoController(TodoService todoService) {
super();
this.todoService = todoService;
}
@RequestMapping("list-todo")
public String listAllTodos(ModelMap model) {
List<Todo> todos = todoService.findByUsername("in28minutes");
model.addAttribute("todos", todos);
return "listTodos";
}
}
```
'강의 > Java Spring Boot' 카테고리의 다른 글
| JSTL 활용해서 todo 표시하기 (0) | 2025.01.26 |
|---|---|
| 세션, 모델, 그리고 요청 - @SessionAttributes (0) | 2025.01.26 |
| 로그인 양식 만들기 (0) | 2025.01.26 |
| Spring MVC 작동원리 (0) | 2025.01.26 |
| JSP 시작하기 (0) | 2025.01.26 |