개발

[Spring Boot ] 웹페이지 정보 -> Controller (http method)

changha. 2023. 2. 9. 17:11

전 게시글 https://changha-dev.tistory.com/145 에 이어 이번에는 

 

[Spring Boot] 스프링부트 환경세팅 후 웹페이지 실행

스프링부트 이용하여 웹페이지 띄우기 먼저 IntelliJ 가 설치되어 있다는 전제로 시작하겠습니다. https://start.spring.io/ 위 사이트에서 프로젝트를 만듭니다. depenencies 에서 Thymeleaf 와 Spring Web 을 추

changha-dev.tistory.com

 

html에 입력한 정보를 Controller에 가져오는 걸 해보겠습니다.

 

먼저

index.html

controller 패키지 => MemberController 생성

templates 패키지 => save.html 생성 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
    <h1> Index Page!</h1>
    <a href="/member/save">회원가입</a>
    <a href="/member/login">로그인</a>


</body>
</html>

index.html 수정 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Save</title>
</head>
<body>
<!-- action : form에 작성한 데이터를 어디로 보낼지 지정 -->
<form action="/member/save" method="post">
    <!-- name : 서버로 전송 할 때 변수이름의 역할 -->
    이메일: <input type="text" name="memberEmail"> <br>
    비밀번호: <input type="password" name="memberPassword"> <br>
    이름: <input type="text" name="memberName"> <br>
    <input type="submit" value="회원가입">
</form>
</body>
</html>

save.html

 

 

저번에 만든 homeController와 같이 

이번에는 Member를 관리하는 Controller를 만들겠습니다. 

package com.example.member.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class MemberController {
    // 회원가입 페이지 출력 요청
    @GetMapping("/member/save")
    public String saveForm() {
        return "save";
    }

    @PostMapping("/member/save")    // name값을 requestparam에 담아온다
    public String save(@RequestParam("memberEmail") String memberEmail,
                       @RequestParam("memberPassword") String memberPassword,
                       @RequestParam("memberName") String memberName) {
        System.out.println("MemberController.save");
        System.out.println("memberEmail = " + memberEmail + ", memberPassword = " + memberPassword + ", memberName = " + memberName);
        return "index";
    }
}

 

@PostMapping : save.html의 <form> method : post => 정보 전달을 의미 하므로 PostMapping으로 정보를 받아줍니다. 

@RequestMapping : save.html의 <input> name 과 일치하게 작성한 후 파라미터로 정보를 받아 옵니다. 

 

 

실행해 보면

localhost:8080/member/save

회원가입 버튼을 누르면 

return index 로 인해 index페이지로 이동합니다. 

로그창을 보면 

 위와 같이 출력 됩니다. 

 

 

간단히 html에서 controller로 정보를 가져오는 방법을 살펴 보았습니다.