프로젝트24 영화 예매 사이트 (MoVieCinema) - 마이페이지 : 나의 예매 내역 조회 항목 ( 컬렉션과 스트림 ) 컨트롤러 - 페이징 처리도 같이 해준다 ! 서비스 public Page getMyTickets(Long memberId, Pageable pageable, Model model) { Page myTicketList = ticketRepository.findAllByMemberId(memberId, pageable); int nowPage = myTicketList.getPageable().getPageNumber(); int totalPages = myTicketList.getTotalPages(); int pageGroupSize = 5; int currentPageGroup = nowPage / pageGroupSize; int startPage = currentPageGroup * pageGroup.. 2024. 4. 14. 영화 예매 사이트 (MoVieCinema) - 유효성 검사 코드 리팩토링 회원 가입 시 아이디, 비밀번호, 이름, 이메일, 전화번호에 대한 유효성 검사 코드를 간결하게 하고 싶다. 기존 유효성 검사 코드 $(() => { const $idInput = $("#username"); const getIdCheck = /^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z0-9]{5,10}$/; const $checkIdResult = $("#checkIdResult"); const $enrollFormSubmit = $("#enrollForm :submit"); $idInput.focus(); $idInput.on('blur keyup', function() { const id = $idInput.val(); let isValidId = false; if (event.type .. 2024. 4. 13. 영화 예매 사이트 (MoVieCinema) - 마이페이지 : 나의 리뷰 조회 항목 나의 리뷰 조회는 로그인한 사용자의 아이디를 찾아 리뷰의 작성자와 동일한 리뷰들을 모두 조회해 오도록 했다. 컨트롤러 서비스에 파라미터로 로그인 유저의 아이디와, 페이징 처리를 위한, pageable, model을 넘겨주었다. 서비스 리파지터리 ⇒ 리뷰 테이블의 reviewWriter와 username이 같은 리뷰들을 조회한다. myReviews.jsp 나의 영화 후기 목록 ${myReview.reviewId} ${myReview.reviewWriter} ★ ★ ${myReview.reviewContent} ${fn:substringBefore(myReview.createReviewDate.toString(), 'T')} 이전 ${page + 1} 다음 마이페이지에서 리뷰 보기를 누르면 내가 작성한 리뷰.. 2024. 4. 13. 영화 예매 사이트 (MoVieCinema) - 마이페이지 화면 AJAX로 띄우기 기존 마이페이지는 페이지에 들어가자마자 내 정보가 바로 뜨도록 만들었는데, 마이페이지를 들어가면 여러 항목들을 두고 선택해서 나의 정보를 볼 수 있도록 구조를 바꾸기로 했다. 마이페이지 우측 화면의 항목들을 누르면 페이지가 새로 고침 되는 것이 아니라 AJAX로 검정 부분에 해당 화면을 띄워야 한다. 이렇게 개인정보 탭을 누르면 내 정보 수정 / 비밀번호 재설정 등의 하위 탭이 나오도록 했고, 이 탭을 누르면 해당 기능을 구현해 놓은 페이지가 나오도록 기존 페이지를 연결해주어야 한다. 먼저, 개인정보 탭을 누르면 나의 정보들이 나와야 한다. 여기에 showSubMenu( ) 메서드는 개인정보가 상위 탭이므로 누르면 하위 탭들이 열리도록 해 놓은 이벤트이다. 개인정보가 있는 li 태그에 id를 이용해서 페.. 2024. 4. 13. 영화 예매 사이트 (MoVieCinema) - 리뷰에 별점 항목 추가 리뷰에 별점도 같이 작성할 수 있도록 해야 한다. 기존 리뷰엔티티에 별점 컬럼을 생성한다. review.jsp에서 별점 작성 부분을 추가해준다. css로 라디오 버튼을 없애고 label 태그에 들어있는 별에 그림자 효과를 줘서 별모양으로 선택할 수 있도록 한다. #starForm fieldset { display: inline-block; direction: rtl; border: 0; } #starForm fieldset legend { text-align: right; } #starForm input[type=radio] { display: none; } #starForm label { font-size: 1.2em; color: transparent; text-shadow: 0 0 0 #f0f0f0.. 2024. 4. 13. 영화 예매 사이트 (MoVieCinema) - 아이디 찾기 및 비밀번호 재설정 로그인 실패시 사용자에게 잘못된 로그인 정보임을 알려주고 다시 로그인하도록 한다. MemberController 수정 @PostMapping("/member/login") public String login(Member member, HttpSession session, Model model) { Optional optionalLoginUser = memberService.selectMemberByUsername(member); if (optionalLoginUser.isPresent()) { Member loginUser = optionalLoginUser.get(); if (pEncoder.matches(member.getPassword(), loginUser.getPassword())) { sess.. 2024. 4. 13. 이전 1 2 3 4 다음