cs/java-spring-boot
[Zero-base] 7-6. 회원 상세 목록 구현
Lomo
2022. 2. 24. 16:40
반응형
회원 상세 목록 구현
- ID(이메일)을 링크로 변경
- 링크로 변경된 모습
- 링크로 해당 ID값이 전달 확인
- /detail.do?id=01test@gmail.com
- 링크로 해당 ID값이 전달 확인
- /detail.do?id=02est@gmail.com
- userId를 받도록 수정
- 회원 상세 정보(detail.html) 페이지 생성
- 상세 페이지 맵핑
- 상세 페이지 맵핑 확인
- 'member' 모델 생성
public class AdminMemberController {
@GetMapping("/admin/member/detail.do")
public String detail(Model model, MemberParam parameter) {
parameter.init();
MemberDto member = memberService.detail(parameter.getUserId());
model.addAttribute("member", member);
return "admin/member/detail";
}
public interface MemberService extends UserDetailsService {
/**
* 회원 상세 정보
*/
MemberDto detail(String userId);
}
public class MemberDto {
public static MemberDto of(Member member) {
return MemberDto.builder()
.userId(member.getUserId())
.userName(member.getUserName())
.phone(member.getPhone())
// .password(member.getPassword())
.regDt(member.getRegDt())
.emailAuthYn(member.isEmailAuthYn())
.emailAuthDt(member.getEmailAuthDt())
.emailAuthKey(member.getEmailAuthKey())
.resetPasswordKey(member.getResetPasswordKey())
.resetPasswordLimitDt(member.getResetPasswordLimitDt())
.adminYn(member.isAdminYn())
.build();
}
public class MemberServiceImpl implements MemberService {
@Override
public MemberDto detail(String userId) {
Optional<Member> optionalMember = memberRepository.findById(userId);
if (!optionalMember.isPresent()) {
return null;
}
Member member = optionalMember.get();
return MemberDto.of(member);
}
- member 값 출력 테스트용 코드
- MemberDto 값 출력 확인
- 상세 페이지에 테이블 생성
<table>
<tbody>
<tr>
<th>ID</th>
<td>
<p th:text="${member.userId}"></p>
</td>
</tr>
<tr>
<th>이름</th>
<td>
<p th:text="${member.userName}"></p>
</td>
</tr>
<tr>
<th>연락처</th>
<td>
<p th:text="${member.phone}"></p>
</td>
</tr>
<tr>
<th>가입일</th>
<td>
<p th:text="${member.regDt}"></p>
</td>
</tr>
<tr>
<th>이메일 인증</th>
<td>
<p th:text="${member.emailAuthYn}"></p>
</td>
</tr>
<tr>
<th>관리자 여부</th>
<td>
<p th:text="${member.adminYn}"></p>
</td>
</tr>
</tbody>
</table>
- 생성된 테이블 확인
- 가독성을 위한 스타일 추가
- 스타일 적용된 모습
- 리스트로 돌아가기 링크 추가
- 웹페이지에서 확인
- 회원 목록 페이지 에러
- @AllArgsConstructor 추가
- @NoArgusConstructor 추가
package com.zerobase.fastlms.admin.dto;
import com.zerobase.fastlms.member.entity.Member;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class MemberDto {
String userId;
String userName;
String phone;
String password;
LocalDateTime regDt;
boolean emailAuthYn;
String emailAuthKey;
LocalDateTime emailAuthDt;
String resetPasswordKey;
LocalDateTime resetPasswordLimitDt;
boolean adminYn;
//Add column
long totalCount;
long seq;
public static MemberDto of(Member member) {
return MemberDto.builder()
.userId(member.getUserId())
.userName(member.getUserName())
.phone(member.getPhone())
// .password(member.getPassword())
.regDt(member.getRegDt())
.emailAuthYn(member.isEmailAuthYn())
.emailAuthDt(member.getEmailAuthDt())
.emailAuthKey(member.getEmailAuthKey())
.resetPasswordKey(member.getResetPasswordKey())
.resetPasswordLimitDt(member.getResetPasswordLimitDt())
.adminYn(member.isAdminYn())
.build();
}
}
- 회원 관리 페이지(list.html) 정상 시현 확인
반응형