21.7.29 JS에서 JSTL 혼용해서 쓰기

민국·2021년 7월 29일
0

자바스크립트 - JSTL

잘못된 예

    function planSchSubmit(){
		<c:choose>
			<c:when test="${selected_date} eq  $('#startDate').val()">
			var selected_startDate = ${selected_date} + ' ' + $('#startTime option:selected').val();
			$('#startDate').attr('value', selected_startDate);
			</c:when>
			<c:otherwise>
			var selected_startDate = $('#startYMD').val() + ' ' + $('#startTime option:selected').val();
			$('#startDate').attr('value', selected_startDate);
			</c:otherwise>
		</c:choose>
		
		var selected_endDate = $('#endYMD').val() + ' ' + $('#endTime option:selected').val();
		$('#endDate').attr('value', selected_endDate);
		
		$("#postSch").attr("action","insert.sch").submit();
	};

올바른 예

    function planSchSubmit(){
		var selectedDate = '<c:out value = "${selected_date}"/>';
        또는
        var selectedDate = 	'${selected_date}';
        
    	if(selectedDate == $('#startDate').val()){
			var selected_startDate = ${selected_date} + ' ' + $('#startTime option:selected').val();
			$('#startDate').attr('value', selected_startDate);
		} else{
			var selected_startDate = $('#startYMD').val() + ' ' + $('#startTime option:selected').val();
			$('#startDate').attr('value', selected_startDate);
		}
		
		var selected_endDate = $('#endYMD').val() + ' ' + $('#endTime option:selected').val();
		$('#endDate').attr('value', selected_endDate);
		
		$("#postSch").attr("action","insert.sch").submit();
	};

<변수 설정 시>

첫번째 방법 : var selectedDate = '<c:out value = "${selected_date}"/>';
또는
두번째 방법 : var selectedDate ='${selected_date}';

왜?
첫번째, JSP의 실행순서가 자바 -> JSTL -> HTML -> JAVASCRIPT

두번째, <c:out> 으로 출력할 경우 <. >가 < > 로 자동변환되지만
$를 이용한 출력은 그렇게 되지 않음. 그렇기때문에 만약 출력되는 값 안에

profile
새싹개발자

0개의 댓글

관련 채용 정보