본문 바로가기

강의 내용 정리/스프링부트와 JPA 활용 1

7. 레이아웃, 회원가입, 회원조회(중요)

 

 

부트스트랩 적용 이후

 

 

 

=============================== 회원등록

 

home.html

회원가입 누르면 /members/new로 가서 폼이 떠야함.

 

 

 

진짜 중요.

 

MemberController 가 templates/members/createMemberform.html 으로 가서 렌더링을 한다.

 

 

createMemberForm.html

12. 아까 컨트롤러에서 Model로 매핑된 MemberForm 객체가 object에 들어간다.

15. *{name} 에서 *은 연결된 object를 참조한다. ( MemberForm의 name필드 ) (getter, setter로 접근)

 

36. 버튼 submit 누르면 12. /members/new에 post요청으로 넘어간다. ( MemberForm 객체도 넘어간다. )

-> Post 컨트롤러를 만들자.

 

조건이 생각보다 많다. 우리는 @NotEmpty를 name에만 적어둬서 저거만 valid함.

 

form에서 꺼내서 값을 Address에 넣는다. join 호출, 홈으로 리다이렉트(하지만 제일 좋은건 다시 폼화면으로 돌아가서 이게 잘못됐어요)

 

위: 원본, 아래: 값 들어간 거.

값이 잘 들어갔다.

 

타임리프-스프링은 강하게 integrate 되어있다.

 

 

 

 

@NotEmpty인 name필드를 비워두면 다시 폼 화면으로 오면서 이렇게 뜬다. ( 저 문구는 MemberForm에서

@NotEmpty(message = "회원 이름은 필수 입니다.")//필수값
private String name;

이렇게 적어놔서 그렇다.

 

 

 

createMemberForm.html

여기서 맨 밑줄 errors=*{name} 에서 메세지가 출력된 것이다.

 

 

다른 필드도 다른 validation 해봐라.

javax.validation 쳐보면 됨.

타임리프는 docs 에서 Thymeleaf + Spring 읽어봐라.

 

 

 

 

 

 

 

======================================================= 7-3. 회원 조회

 

home.html 을 보면

회원 조회는 /members 이다. 그러므로 컨트롤러도 이에 맞게 만들어준다.

 

 

//엔티티를 최대한 순수하게 유지해야함. 오직 핵심 비즈니스로직에만 디펜던시가 있도록 설계.
//이래야 애플리케이션이 커져도 엔티티를 여러군데에서 유연하게 사용가능( 유지보수 용이 )
//화면에 대한 로직은 없어야함. -> 화면에 맞는 건 Form객체나 DTO를 써야함.
//DTO(data transfer object(getter, setter 만 있음)

진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.진짜 중요한 내용.

 

API를 만들때도 엔티티를 외부로 반환하면 안된다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

API를 만들때도 엔티티를 외부로 반환하면 안된다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

API를 만들때도 엔티티를 외부로 반환하면 안된다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

API를 만들때도 엔티티를 외부로 반환하면 안된다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

API를 만들때도 엔티티를 외부로 반환하면 안된다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

여기서도 간단하니까 그냥 Member로 화면에 뿌렸는데 DTO로 뿌리는게 맞음

그냥 템플릿에는 엔티티로 뿌려도 되긴됨 ㅋㅋ 간단할 때는!!! -> 어차피 SSR되서 서버에서만 돌기 때문에(클라에 노출 되지 않음)

 

Recent Posts
Popular Posts
Recent Comments