스프링/스프링 입문
6/30 스프링 입문 - 웹 MVC 개발
born-A
2022. 6. 30. 11:43
@Controller
public class HomeController {
@GetMapping("/")
public String home(){
return "home";
}
}
localhost:8080으로 들어오면 이게 호출됨. -> home.html이 호출됨
엇 근데 우리 index.html 만들지 않았나? welcomePage 라며?
localhost8080/ 으로 들어오면 컨트롤러 먼저 뒤지는데 그때 "/" 만나게 된 것!!
바로 그 컨트롤러 호출하고 끝!
회원 웹 기능 - 등록
아까 home.html에서 회원 가입 링크를 /members/new로 설정했잖아
그럼 그 url 매핑해줘야지!
@GetMapping("/members/new")
public String createForm(){
return "members/createMembeerForm";
}
데이터를 등록할땐 @PostMapping을 씀, 조회할땐 @GetMapping
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="container">
<form action="/members/new" method="post">
<div class="form-group">
<label for="name">이름</label>
<input type="text" id="name" name="name" placeholder="이름을입력하세요">
</div>
<button type="submit">등록</button> </form>
</div> <!-- /container -->
</body>
</html>
form 태그는 값을 입력할 수 있는 태그. name="name"이 서버로 값이 넘어가는 부분!
name 부분에 spring을 입력하면
<form action="/members/new" method="post">
/members/new에 포스트 방식으로 넘어가게 된다.
그럼
@PostMapping("/members/new")
public String create(MemberForm form){
Member member = new Member();
member.setName(form.getName());
memberService.join(member);
return "redirect:/";
}
@PostMapping을 거쳐,
public class MemberForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
여기에서 name에 spring이 저장되게 된다.
회원 웹 기능 조회
@GetMapping("/members")
public String list(Model model){
List<Member> members = memberService.findMembers();
model.addAttribute("membbbers", members);
return "members/memberList";
}
멤버의 리스트 자체를 모델에 넣어서 View에 넘길것이다
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="container">
<form action="/members/new" method="post">
<div class="form-group">
<label for="name">이름</label>
<input type="text" id="name" name="name" placeholder="이름을
입력하세요">
</div>
<button type="submit">등록</button> </form>
</div> <!-- /container -->
</body>
</html>
자바의 for each와 같음. 객체 하나를 꺼냄
데이터는 메모리안에 있기 때문에 자바를 내려버리면 데이터가 다 사라짐. -> 이 데이터를 파일이나 db에 저장해야한다!