월루를 꿈꾸는 대학생

[Spring 입문] 웹 mvc개발 본문

Programing/Spring Boot

[Spring 입문] 웹 mvc개발

하즈시 2023. 1. 20. 00:19
728x90

회원 웹 기능 - 홈화면 추가 

 

- home 화면의 경우 아무것도 없는 '/' 기준 

- 우선순위 상 내장 톰켓에서 스프링 컨테이너 안에 매핑된 게 있는 지 확인하고 없으면 리소스에서 찾아서 반환 

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(){
        return "home";
    }
}

- 다음과 같이 "/" 로 매핑된 경우 우선순위가 높기 때문에 home이 반환 됨 


 

회원 웹 기능 - 등록 

 

1.  /members/new 로 이동시 createMemberForm.html로 이동 

2. 해당 html에서 이름 입력후 전송 

<!--form : 값 입력 .. name이 중요 key값이 됨 -->
<form action="/members/new" method="post">
  <div class="form-group">
    <label for="name">이름</label>
    <input type="text" id="name" name="name" placeholder="이름을

3. post방식으로 전송 되고 /members/new 컨트롤러 매칭 (이 때 name이 키 값으로 들고감)

4. 이해가 안 되지만 해당 키값 name을 보고 스프링이 알아서 MemberForm에 name에다가 값 넣어준다고 함 

 

@PostMapping("/members/new")
public String create(MemberForm form){
    Member member = new Member();
    member.setName(form.getName());
    // 레포지토리에 저장
    memberService.join(member);
    // 완료 후 홈화면으로 이동
    return "redirect:/";
}

- 저기 MemberForm을 파라미터에 넣은 것만으로 알아서 name을 넣어준다라.. 

 


회원 웹 기능 - 조회 

 

- 서비스에서 모든 회원을 찾고 해당 리스트를 모델로 넘겨준 후 html로 값 넘겨줌 

@GetMapping("/members")
public String list(Model model){
    List<Member> members = memberService.findMembers();
    model.addAttribute("members",members);
    return "/members/memberList";
}

 

모델 안에서 값을 꺼냄 ${} 그리고 th:each로 루프 돌림 
<tr th:each="member : ${members}">
  <td th:text="${member.id}"></td>
  <td th:text="${member.name}"></td>
</tr>

 

 

출처

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

728x90