스프링 입문 - 회원 웹 기능 - 조회
이번 시간에는 회원 웹 기능 - 조회 를 만들어 보자.
이제 회원 목록을 눌렀을때 동작하도록 만들면 된다.
회원 목록 링크를 누르면, localhost:8080/members로 이동하도록 해 두었었다.
MemberController에 코드를 작성해 보자.
회원 목록 링크를 누르면, localhost:8080/members로 가게 해두었으므로,
@GetMapping("/members")
을 해준다.
public String List(Model model) {
List<Member> members = memberService.findMembers();
model.addAttribute("members", members);
return "members/memberList";
}
public String List(Model mode) 을 해주는데,
memberService에서 findMembers(); 라고 하면, members를 다끄집어 올 수 있다.
그리고 model.addAttribute를 해서 members 리스트 자체를 모델에 담아서 화면(view) 템플릿에 넘길 것이다.
넘길 곳은 return "member/memberList"라고 했다.
그러면 member/memberList를 만들어야 한다.
templates폴더의 members 폴더안에 memberList.html을 생성했다.
html코드는 강의록의 코드를 복사해서 작성했다.
이 코드에서는 thymeleaf 템플릿 엔진이 본격적으로 동작을 하는데,
이러한 템플릿 엔진이 뭘 해주냐면,
서버를 run시켜보면,
회원 목록 링크에 들어가보면, 아직 아무것도 없다.
한번, 가입을 해보자. spring1 이라는 이름과 spring2라는 이름으로 회원 가입을 했다.
그리고나서 회원 목록을 가보면,
이렇게 spring1, spring2를 볼 수 있다.
이 페이지의 소스보기를 해보면,
빨간 네모박스 부분이 템플릿 엔진이 랜더링 하는 것인데,
실제 코드는 <tr></tr>이 하나인데, 회원가입을 2번하고 조회를 한 페이지의 소스코드에는 <tr></tr>이 2개로 랜더링 되어있다.
이것이 템플릿 언어가 랜더링 한 것인데,
다른 태그는 다 그대로고,
템플릿 언어에서 해당 members를 읽어들이는데,
이 $표시안에 있는 members는 모델안에 있는 값을 꺼내는 것이다.
MemberController를 보면,
model.addAttribute로 key가 "members" 이고,
이 members 안에는 List로 모든 회원을 조회해서 담아놓았다.
그러면, th:each라고 하면, 루프를 다 돈다. (thymeleaf 문법)
루프를 돌면서 해당 빨간네모 로직을 실행한다.
그러면, 루프마다,
${members}에서 첫번째 객체를 꺼내서 member에 담고,
해당 member의 id와 name을 출력한다.
이때, id를 살펴보면, id와 name이 private이라서 직접 접근은 안되고,
Java 프로퍼티 방식의 접근이라고하는
getter, setter 접근 방식으로 (getId, getName) 접근해서 값을 가져와서 출력해주게 되는 것이다.
그렇게 해서 최종 결과물이 이렇게 랜더링이 된 것이고,
브라우져로 이것을 잘 뿌려준 것이다.
지금까지, 회원 조회까지 다 작성해 보았다.
데이터가 메모리에 있기 때문에
서버를 내렸다가 다시키게 되면, 데이터가 삭제된다.
서버를 내렸다가 회원목록을 들어가보면, 아무것도 없는 것을 확인할 수 있다.
메모리 안에 있기 때문에 서버를 자바를 내려버리면, 당연히 회원데이터가 사라진다.
그래서 우리는 이 데이터들을 파일이나 데이터베이스에 저장을 해야한다.
다음시간에는 스프링 데이터 액세스에 대해서 알아볼 것이다.
'Spring' 카테고리의 다른 글
스프링 입문 - 순수 JDBC (0) | 2022.05.20 |
---|---|
스프링 입문 - H2 데이터베이스 설치 (0) | 2022.05.20 |
스프링 입문 - 회원 웹 기능 - 등록 (0) | 2022.05.19 |
스프링 입문 - 회원 웹 기능 - 홈 화면 추가 (0) | 2022.05.19 |
스프링 입문 - 자바 코드로 직접 스프링 빈 등록하기 (0) | 2022.05.19 |
댓글
이 글 공유하기
다른 글
-
스프링 입문 - 순수 JDBC
스프링 입문 - 순수 JDBC
2022.05.20 -
스프링 입문 - H2 데이터베이스 설치
스프링 입문 - H2 데이터베이스 설치
2022.05.20 -
스프링 입문 - 회원 웹 기능 - 등록
스프링 입문 - 회원 웹 기능 - 등록
2022.05.19 -
스프링 입문 - 회원 웹 기능 - 홈 화면 추가
스프링 입문 - 회원 웹 기능 - 홈 화면 추가
2022.05.19