JSP와 JSTL 변수 혼용하기

JSP의 <% … %>에서 정의한 변수와 JSTL의 <c:set var= … >에서 정의한 변수는 서로 혼용이 되지 않는다. 이것들을 서로 사용하기 위해서는  pageContext 객체의 프로퍼티를 이용해야 한다.

안되는 예제


<%
int jspVal = 888;
%>
<c:set var="tmpValue" value="<%= jspVal %>"></c:set>
<c:out value="${tmpValue}" default="0"></c:out>

<%=tmpValue %>

실행하면 ‘Unable to compile class for JSP’  오류가 떨어진다.
캡처-jstl_변수혼용테스트

되는 예제

 <%
int jspVal = 888;
pageContext.setAttribute("jspVal", jspVal) ;
%>
<c:out value="${jspVal}" default="999"></c:out>

<c:set var="tmpValue" value="${jspVal}"></c:set>


<c:out value="${tmpValue}" default="0"></c:out>


<%= pageContext.getAttribute("tmpValue") %>

실행하면 ‘888’이 세번 모두 찍힌다.
 

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: