인프런 커뮤니티 질문&답변

bach님의 프로필 이미지
bach

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 조회

리스트가 나오질 않습니다

작성

·

464

0

등록은 되는데 리스트에서 조회가 되지 않습니다.

 

MemberController.java

package hello.hellospring.controller;

import hello.hellospring.domain.Member;
import hello.hellospring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

@Controller
// memberController객체를 생성해서 Spring에 넣어둠
public class MemberController {

private final MemberService memberService;

@Autowired
//생성자에 Autowired라고 되어 있으면 memberService를 Spring 컨테이너에 연결
public MemberController(MemberService memberService) {

this.memberService = memberService;
}

@GetMapping("/members/new")
public String createForm(){
return "members/createMemberForm";
}
@PostMapping("/members/new")
public String create(MemberForm form){
Member member = new Member();
member.setName(form.getName());

//System.out.println("member = " + member.getName());

memberService.join(member);

return "redirect:/";
}

@GetMapping("/members")
public String list(Model model){
List<Member> members = memberService.findMembers();//Model들을 다 가져올 수 있음
model.addAttribute("members", members);
return "members/memberList";
}
}


memberList.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>

<div class="container">
<div>
<table>
<thead>
<tr>
<th>#</th>
<th>이름</th>
</tr>
</thead>
<tbody>
<tr th:each="member : ${members}">
<td th:text="${member.id}"></td>
<td th:text="${member.name}"></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html>

 

 

해당 질문이 좀 많은 거 봐서 나중에 보완을 하시면 더 좋을 거 같다는 생각도 듭니다

답변 2

0

프로젝트 코드 확인해보았습니다.

우선 강의와 강의 메뉴얼에서 자바버전 11 설치를 설명드렸으나,

자바 버전 17을 선택하셔서 11로 변경 후 진행하였습니다.

 

 

 

조회가 안되는 이유는

전체조회(findAll)의 반환을 null로 하여 등록한 데이터가 조회되지 않은 것입니다.

 

findAll은 아래와 같이 작성해주세요.

 

추가로, 강의에서 findAll 로 소문자 l인데 대문자 L로 작성한 부분이 있습니다.

이 부분도 수정하셔야 추후 강의 수강에 차질없이 진행 가능합니다.

(findALl 을 작성한 MemberRepository, MemoryMemberRepository, + findALl을 호출한 테스트 코드)

 

올려주신 코드 확인 결과 보완이 필요하다고 생각하는 부분은 없는 것 같아요.

강의 수강 중 보완이 필요하다고 생각하시는 내용 있으면 언제든 질문 남겨주세요 :)

 

 

 

 

 

 

 

 

bach님의 프로필 이미지
bach
질문자

자세한 설명 감사합니다. 저는 리스트가 안 뜬다는 사람들이 많길래 강의에 문제가 있나? 했었네요 감사합니다.

0

안녕하세요. TAESEUNG CHOI님, 공식 서포터즈 OMG입니다.

강의 보완이 필요한지, 강의와 동일하게 진행하시지 않아 발생한 문제인지 우선 코드를 살펴봐야 알 것 같습니다. 아래 설명을 참고하여 댓글남겨주세요. 코드 확인후 답변드리겠습니다:)

 

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

 

https://bit.ly/3fX6ygx

 

주의: 업로드시 권한 문제 꼭 확인해주세요

공유 기본 설정은 비공개로 되어 있어 업로드 한 본인 계정만 접근이 가능합니다.

 

본인 계정이 아닌 링크를 통한 타 계정 접근이 가능한지 확인하는 방법은 업로드 한 구글 계정을 로그아웃하고 링크를 접속하여 ""액세스 권한 요청 화면""이 출력되는지 확인을 해주세요.

 

감사합니다

bach님의 프로필 이미지
bach
질문자

https://drive.google.com/file/d/1J3Sz3PILh5G8E5sCy71WCu7vKGjneI1C/view?usp=sharing

링크입니다

bach님의 프로필 이미지
bach

작성한 질문수

질문하기