상세 컨텐츠

본문 제목

[Spring] 쿼리스트링으로 페이지 연결하기 (queryString)

프로그래밍/java

by ***bmo*** 2023. 5. 10. 17:33

본문

반응형

결제 후 회원은 마이페이지로 연결, 비회원은 예약조회창으로 연결하는데 

비회원일때 연결할 예약조회창을 쿼리스트링으로 연결해봤다.

(pathVariable은 많이 했으니까...쿼리스트링도 한번 해보고싶어서)

 

pathVariable은 url이 '주소/파라미터값' 형태이고 

queryString은 '주소파라미터?=파라미터값' 형태이다

 

www.sample.com/examle/04  이건 pathVariable

www.sample.com/examle/id?id=04  이런 형태는 queryString

function kakaopay() {
	var useridx = $('#useridx').val();
	    var IMP = window.IMP;
	    var merchantUid ='merchant_' + new Date().getTime(); //이 변수를 쿼리스트링 파라미터로 사용
	    IMP.init("imp01440251");
	        pg: 'kakaopay', 
	        pay_method: 'card', 
	        merchant_uid: merchantUid, 
	        name: '차자조 테스트 결제', 
	        amount: 100,
	        buyer_email: '${info.email }',
	        buyer_name: '${info.name }',
	        buyer_tel: '${info.phoneNumber}',
	        buyer_addr: '서울특별시 강남구 삼성동',
	        buyer_postcode: '123-456',
	        m_redirect_url: '/'
	    }, function (rsp) {
	        if (rsp.success) {  
	            var msg = '결제 금액 : ' + rsp.paid_amount +'원';
	            msg += '카드 승인번호 : ' + rsp.apply_num;
	            paid(merchantUid); //결제 정보 저장
	            swal({
	            	title : "예약이 완료되었습니다",
	            	icon  : "success",
	            	closeOnClickOutside : false
	            	}).then(function(){
	            		if(useridx == 0) {
	            			location.href='${pageContext.request.contextPath}/nmemPayInfo?merchantUid='+merchantUid;
	            		}else {
			           		 location.href='${pageContext.request.contextPath}/member/profile';
	            		}
	            });
	        } else {   
	           var msg =  rsp.error_msg;
	            swal("결제가 완료되지 않았습니다",'', {icon: "error"});
	            }
	    });
	}

location.href='${pageContext.request.contextPath}/nmemPayInfo?merchantUid='+merchantUid;

?뒤에 파라미터이름 + 파라미터값을 적어줬다.

 

	@GetMapping("nmemPayInfo")
	public ModelAndView nmemPayInfo(ModelAndView mv, @RequestParam String merchantUid, PaymentReqDto paydto) {
		mv.addObject("info", pService.selectNmemPayInfo(merchantUid));
		mv.setViewName("reservation/nmemPayInfo");
		return mv;
	}

GetMapping으로 매핑시켜주고 파라미터값을 RequestParam으로 가져왔다.

reservation 폴더 안에 nmemPayInfo 페이지를 만들어놨다.

 

 

 

public PaymentReqDto selectNmemPayInfo(String merchantUid);

서비스코드

서비스부터 dao, mapper는 생략......

 

 

	<section>
		<div class="content-area single-property" style="background-color: #FCFCFC; text-align:center;">		
			<div style="padding:50px;">
			<h3>예약이 완료되었습니다.</h3>
				<div style="width:400px; padding:80px; text-align:left; display:inline-block; font-size:17px;">
					<div style="padding:5px;">
						예약 번호 : ${info.paymentIdx}
					</div>	
					<div style="padding:5px;">
						예약자 : ${info.name}
					</div>		
					<div style="padding:5px;">
						결제 금액 : ${info.finalPrice}
					</div>	
					<div style="padding:5px;">
						휴대폰 번호 : ${info.phoneNumber}
					</div>
					<div style="padding:5px;">
						이메일 : ${info.email}
					</div>
					<div style="padding:5px;">
						면허 번호 : ${info.license}
					</div>			
				</div>
				<div>
					<br>예약 조회,취소 시 예약번호· 예약자 이름·전화번호가 필요합니다.  
				</div>
			</div>
		</div>
	</section>

컨트롤러에서 object설정해줬던 info로 제이쿼리를 사용해 jsp를 만들어줬다

 

 

쿼리스트링 파라미터에 값이 잘 들어왔다.

 

파라미터 값에 따라 jsp 내용이 바뀐다~!

반응형

관련글 더보기

댓글 영역