학원/JSP

11/29 53-2 [JSP] JSTL (RemoveTag)

도원결의 2022. 11. 29. 20:04

[RemoveTag]

해당 Scope에 있는 변수를 제거하는 역할

변수 삭제 시 이름이 Scope에 맞지않으면 삭제 안됨

***Scope를 지정하지 않으면 이름이 동일한 모든영역의 변수가 다 삭제됨 주의주의!!!!

 

<c:remove var="이름(변수명)" scope =" 영역 "  />

 

삭제하려면 우선 삭제할 변수들이 필요하니 셋팅해

1.각 영역에 jstl을 이용하여 속성 지정

올 이번엔

<%@ taglib prefix="my" uri="http://java.sun.com/jsp/jstl/core" %>  다르게 접근

(<my:set var=" " value=" "   /)

<my:set var="pagevar" value="페이지영역"/>	
<my:set var="pagevar" value="리퀘스트영역1" scope="request"/>
<my:set var="requestvar" value="리퀘스트영역2" scope="request"/>		
<my:set var="sessionvar" value="세션영역" scope="session"/>				
<my:set var="applicationvar" value="어플리케이션영역" scope="application"/>

2.삭제 전 출력

<li>pagevar : ${pagevar }</li>
<li>pagevar : ${requestScope.pagevar }</li>
<li>requestvar : ${requestvar }</li>
<li>sessionvar : ${sessionvar }</li>
<li>applicationvar : ${applicationvar }</li>

 

3.영역이 다른 scope 지정한 후 삭제 그리고 출력!

<my:remove var="requestvar" scope="session"/> 

세션영역에는 requestvar라는 이름을 가진 변수가 없음!

아무것도 삭제 안됨

 

4.scpe 지정이 안되어 있으면 이름이 같은 변수는 모조리 삭제된다!!!!

<my:remove var="pagevar"  />   

pagevar는 page랑 request  두 곳에 있음

<li>pagevar : ${pagevar }</li>
<li>pagevar : ${requestScope.pagevar }</li>
<li>requestvar : ${requestvar }</li>
<li>sessionvar : ${sessionvar }</li>
<li>applicationvar : ${applicationvar }</li>

그 두 곳 모두 삭제됨