Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 리눅스환경
- Decapsulation
- 유니캐스트
- filezilla
- 도커
- 모래시계출력
- 포트포워딩
- 네트워크모델
- 다차원배열
- 리눅스계열
- 백준1946
- 배열최소값최대값
- ubuntu
- 배열복사
- wan
- 브로드캐스트
- 디비버
- 오름차순
- 페이로드
- dbeaver
- 객체배열
- 백준
- 도커권한설정
- docker
- 우분투
- 배열빈도수
- 포트포워딩 안될때
- EC2
- 센토스
- 1946
Archives
- Today
- Total
다잘하고싶어
[Spring] 회원가입 구현 본문
//사용자 로그인 아이디로 찾는 방법
public Optional<Member> findByLoginId(String loginId) {
List<Member> all = findAll();
for (Member m : all) {
if (m.getLoginId().equals(loginId)) { //멤버의 로그인 아이디가 파라미터로 넘어온 로그인 아이디 값과 같은지
return Optional.of(m);
}
} return Optional.empty(); //optional 안에 값이 있을 수도 없을 수도 있음.
}
위의 코딩을 람다식을 사용하면
public Optional<Member> findByLoginId(String loginId) {
return findAll().stream()
.filter(m -> m.getLoginId().equals(loginId))
.findFirst();
}
Member 넣을 때 직접 만든 Member 넣어야한다. java에서 자동으로 생성해주는 reflect의 Member 넣지 않도록 주의하기
@PostMapping("/add")
public String save(@Valid @ModelAttribute Member member, BindingResult bindingResult) {
//BindingResult 받아야함.
if (bindingResult.hasErrors()) {
return "members/addMemberForm"; //에러가 있으면 form 화면으로 보내고
}
memberRepository.save(member);
return "redirect:/"; //없으면 저장 후, 메인 화면으로
}
결과를 받아와서 에러가 있으면 form 화면으로 보내고,
없으면 멤버 저장한 후에 메인화면으로 보낸다.
(+)
@ModelAttribute("member") Member member
@ModelAttribute Member member
위의 두개는 같은 의미.
보통 스프링이 클래스의 맨 첫글자를 소문자로 바꿔서 자동으로 인식한다.
그러나 타임리프 사용할 시에 인식이 잘 안되는 경우가 있어서 첫번째와 같이 코딩하는 게 좋다.
(+) 데이터 입력 후 확인은 현재 로그로 확인중
서버를 껐다 켤때마다 데이터를 새로 넣어줘야하므로, 테스트 데이터를 임의로 넣어준다.
@Component
@RequiredArgsConstructor
public class TestDataInit {
private final MemberRepository memberRepository;
/**
* 테스트용 데이터 추가
*/
@PostConstruct
public void init() {
Member member = new Member();
member.setLoginId("test");
member.setPassword("test!");
member.setName("테스터");
memberRepository.save(member);
}
}
출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard
강의 듣고 내용 정리중