반응형
회원 관리 예제 - 웹 MVC 개발
듣고 있는 강의 - 김영한의 Spring 입문편
1. 회원 웹 기능 - 홈 화면 추가
홈 컨트롤러 추가
package hello.hello_spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name, Model model) {
return "hello " + name;
}
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
회원 관리용 홈
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<div>
<h1>Hello Spring</h1> <p>회원 기능</p>
<p>
<a href="/members/new">회원 가입</a>
<a href="/members">회원 목록</a> </p>
</div>
</div> <!-- /container -->
</body>
</html>
❓ 아무 것도 없을 때 이동할 수 있는 index.html 이 있는데 왜 home.html 로 이동할까?
❗️ 이동할 때 우선 순위가 있다
이것처럼, 컨트롤러에서 "/" 가 있으면 호출되고 바로 끝난다 (기존에 만들었던 정적 리소스 무시)
컨트롤러가 정적 파일보다 우선순위가 높기 때문이다
2. 회원 웹 기능 - 등록
회원 등록 폼 컨트롤러
package hello.hello_spring.controller;
import hello.hello_spring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MemberController {
private final MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
@GetMapping("/members/new") // 이동할 페이지 URL 을 넣어준다
public String createForm() {
// 반환된 문자열은 뷰 이름으로 사용되어 해당 HTML 파일을 렌더링한다
return "members/createMemberForm";
}
}
회원 등록 폼 HTML 은 resources/templates/members 디렉토리 안에 createMemberForm.html 에 넣어준다
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<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>
회원 등록 컨트롤러
웹 등록 화면에서 데이터를 전달 받을 폼 개선
01월01일 WED 에 인강 듣다가 중간에 끄게 되었는데
2주는 못 들을 거 같아서 포스팅 먼저 한다
반응형
'TIL > JAVA' 카테고리의 다른 글
[Spring] 노인 객체 (0) | 2025.01.10 |
---|---|
[Spring] DTO 와 Entity 의 개념과 차이 (0) | 2025.01.08 |
[Spring] 스프링 빈과 의존관계 (0) | 2025.01.01 |
[Spring] 회원 관리 예제 - 백엔드 개발 (0) | 2024.12.31 |
[Spring] MVC 와 템플릿 엔진, API (0) | 2024.12.30 |