월루를 꿈꾸는 대학생
[Spring 입문] 웹 mvc개발 본문
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>
출처
728x90
'Programing > Spring Boot' 카테고리의 다른 글
[Spring] 객체 지향 설계와 스프링 (1) | 2023.03.05 |
---|---|
[ Spring 입문] AOP (0) | 2023.01.25 |
[Spring Boot 입문] 회원 관리 (0) | 2023.01.11 |
[Spring Boot 입문] 스프링 웹 개발 기초 (0) | 2023.01.08 |
[SpringBoot 입문] 환경세팅 (0) | 2023.01.07 |