210304 - 34일차

Structure of Knowledge·2021년 3월 4일
0

ajax를 할 때, 고려해야할 부분.( 작성 코드 )

  1. 컨트롤러에서 페이지에 넘겨준 파라미터를 사용할 때 jstl,el 을 보통 이용하는데, 자바스크립트에서 이 파라미터를 이용하려면 어떤 태그에 value 값으로 지정한 다음 변수로 지정해서 사용해야 했다.
<!-- login user in session by spring security -->
<sec:authorize access="isAuthenticated()">
	<sec:authentication property="principal.username" var="loginUser"/>
	<c:forEach items="${reviewResult.reviewList}" var="review">
		<c:if test="${review.m_email == loginUser}">
			<c:set value="${review}" var="loginUserReview"></c:set>
			<input type="hidden" value="${loginUserReview}" id="login-user-for-js">
		</c:if>
	</c:forEach>
</sec:authorize>
let loginUserReview = $("#login-user-for-js").val();

  1. ajax로 바뀌는 html 요소들은 다시 동적 이벤트 등록이 안되는 경우가 있었다. 이 문제는 다음 코드와 같이 자바스크립트를 작성해야했음.
$(function(){	// ajax로 변하지 않는 요소
	//댓글 수정 버튼 수정 폼 보이기
	$("#review-update-form").on("click", function(){
		$("#your-comment").removeAttr("readonly");
		$(this).attr("id","review-update-submit");
		$(this).attr("value","수정하기");
	});
});

//댓글 더보기 버튼 , ajax로 인해 변하는 요소
$(document).on("click","button.more_review_button",function(){
	
	let rcp = Number($("#hidden-rcp").text()) + 1 ;
	let rps = Number($("#hidden-rps").text());
	let itemId = $("#itemId").val();
	//alert(rcp +" "+ rps +" "+ itemId);
	let reviewVo = { rcp : rcp, rps : rps, itemId : itemId};
	//alert(reviewVo.rcp +" "+ reviewVo.rps +" "+ reviewVo.itemId);
	
	$.ajax({
		url : "review.do",
		type : "Get",
		data : { rcp : rcp, rps : rps, itemId : itemId},
		dataType : "json",
		success : function(result){
			//alert("결과값 : "+ result);
			setReviewListHtml(result);
		},
		error : function(a,b,c){
			alert("실패 :" + a.responseText);
		}
	});
});
profile
객체와 제어, 비전공자 개발자 되기

0개의 댓글

Powered by GraphCDN, the GraphQL CDN