2023.10.04 - [JSP·Servlet] - [JSP] JSTL core태그 ①
JSTL core 라이브러리의 태그들
JSTL core 라이브러리의 태그들 | ||||
출력태그 | <c:out> | |||
변수 설정 및 삭제 태그 | <c:set> | <c:remove> | ||
예외 처리 태그 | <c:catch> | |||
조건 처리 태그 | <c:if> | <c:choose> | <c:when> | <c:otherwise> |
반복 처리 태그 | <c:forEach> | <c:forTokens> | ||
페이지 처리 태그 | <c:import> | <c:redirect> | <c:url> | <c:param> |
이번 포스팅에서는 JSTL core 태그 중 출력태그인 <c:set>을 알아보겠다.
c:set 태그 사용법
<c:set var="변수명" value="값" scope="영역객체"/>
➡️속성((attribute)을 정의하는 것이 c:set의 의미이다.
➡️scope : 영역. 영역이 지정되어 있지 않으면 기본적으로 page영역에 저장되어있다.
➡️var 속성은 변수명, value 속성에는 값을 입력한다.
<%
int num1 = 100;
int num2 = 300;
int sum = num1 + num2;
%>
✔️결과값(num1+num2) : <%=sum %><
위는 jsp로 표현된 코드이다.
이 코드를 c:out태그를 사용하여 똑같은 결과를 출력하려면
<c:set var="num3" value="100"/>
<c:set var="num4" value="300"/>
<c:set var="sum2" value="${num3+num4 }" />
✔️결과값(num3+num4) : <c:out value="${sum2 }"/>
이와 같이 표현할 수 있다.
el표현식은 일반 자바 표현을 사용하지 못한다.
속성을(영역객체에 값을 줘야) 출력할 수 있게 해야 el표현식을 사용할 수 있음
페이지 영역 : <br> ${pageScope }
pageContext.setAttribyte("변수명", 값)
과 같다.
속성의 정보를 선언 후 다른 페이지에서도 사용
scope란?
➡️영역. 영역이 지정되어 있지 않으면 기본적으로 page영역에 저장되어있다.
- 속성의 정보 선언
<c:set var="model" value="a0001" scope="request"/>
<c:set var="price" value="10000" scope="request"/> <!-- price:10000 정보 전달 -->
<c:set var="color" value="black" scope="session"/> <!-- color:black 정보 전달 -->
- request 영역의 데이터를 가지고 이동 ➡️ foward 방식 (액션태그 사용)
<jsp:forward page="core_set2.jsp">
model의 값을 가지고 core_set2.jsp 페이지로 이동~
➡️request영역에 있기에 값을 가지고 갈 수 있음!
[core_set2.jsp]
<fieldset>
<c:out value="${requestScope.model }"/><br>
<c:out value="${model }"/><br> <!-- requestScope 생략해도됨 -->
➡️c:out태그를 사용한 requestScope.model 과 model은 같은 결과를 출력함
</fieldset>
<fieldset>
✔️model : ${model }<br>
✔️price : ${price }<br>
✔️color : ${color }<br>
</fieldset>
이때, 아래 코드는 같은 결과를 출력할까?
✔️color : ${color }<br>
✔️sessionSope.color : ${sessionScope.color }<br>
🙋결과는 value 속성값에 따라 달라진다.
<c:set var="color" value="black" scope="request"/>
<c:set var="color" value="black" scope="session"/>
위 코드로 표현하면, 같은 결과를 출력.
<c:set var="color" value="red" scope="request"/>
<c:set var="color" value="black" scope="session"/>
request영역 객체를 가지고 값을 다르게 줘봤다.
이렇게 결과가 다르게 나온다.
그 이유는, 영역의 범위가 작은 순서대로 찾기 때문에, 다른 값으로 주어지면 결과는 달라진다.
📌session은 해당 서버 브라우저가 종료될 때까지 정보가 저장된다.
⏳ EL의 Attribute값 접근 우선 순위
page < request < session < application
'JSP·Servlet' 카테고리의 다른 글
[JSP] JSTL core태그 ① <c:out> (0) | 2023.10.04 |
---|---|
[JSP] el 표현식을 사용한 리스트 호출 (0) | 2023.10.04 |
[JSP] 업캐스팅/다운캐스팅 (0) | 2023.10.04 |
[JSP] el 표현식을 사용한 배열 호출 (0) | 2023.10.04 |
[JSP] 포워딩으로 서블릿 + JSP 연결하기 (0) | 2023.09.25 |