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

metalium님의 프로필 이미지
metalium

작성한 질문수

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

회원 웹 기능 - 조회

회원목록 오류

작성

·

274

0

18강 진행중인데요,

회원을 한번 등록후 조회를 하면 

 

# 이름

 

이렇게 번호만 나오고 입력한 이름은 조회되지 않음

 

 

MemberController.java 의 member.setName(form.getName()); 에서

form.getName() 을 출력해보면  null이 나옵니다.

 

createMemberForm.html 에서 name을 못 가져오나봐요,

 

다른분들이 댓글 달아주신것처럼 

 

 createMemberForm.html , MemberForm.java 양쪽 소스 다 확인해봐도 선생님하고 똑같은데

왜 폼에서 name을 못가져오는지 모르겠어요.. 어디를 더 확인해봐야 할까요??

 

MemberForm.java  소스-------------------------------

package hello.hellospring.controller;

 

public class MemberForm {

private String name;

 

public String getName() {

return name;

}

 

public void setName(String name) {

this.name = name;

}

}

 

createMemberForm.html 소스------------------------

<!DOCYPE HTML>

<html xmlns:th="http://www.thymeleaf.org">

<head>

<title> hello</title>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 

</head>

 

<body>

<div class="container">

<form action="/members/new" method="post">

<div class="form-group">

<label for="name">이름</label>

<input type="text" id="name" placeholder="이름을 입력하세요">

</div>

<button type="submit">등록</button>

</form>

</div> <!-- container -->

</body>

</html>

MemberController.java 소스 -------------------------

package hello.hellospring.controller;

 

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;

import org.springframework.web.bind.annotation.PostMapping;

 

import hello.hellospring.domain.Member;

import hello.hellospring.service.MemberService;

 

@Controller

public class MemberController {

private final MemberService memberService;

@Autowired

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());

memberService.join(member);

return "redirect:/";

}

@GetMapping("/members")

public String list(Model model) {

List<Member> members = memberService.findMembers();

model.addAttribute("members", members);

return "members/memberList";

}

}

 

답변 2

0

html 파일에서 input 엘리먼트에 name 속성이 없어서 그런 듯 한데...

name="name" 추가해보셔요.

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

감사합니다 !! 덕분에 해결했어요!!!!! 

0

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

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요. 구글 드라이브 업로드 방법은 다음을 참고해주세요. https://bit.ly/3fX6ygx 주의: 업로드시 권한 문제 꼭 확인해주세요 감사합니다.

접근이 불가능합니다.

권한 설정 다시 해주세요

metalium님의 프로필 이미지
metalium

작성한 질문수

질문하기