EL

16.<c:set> 태그와 <c:remove> 태그와 속성

Jungsoomin :) 2020. 7. 15. 21:57

<c:set>태그는 변수를 선언할때나 속성 값을 가져와서 변경, 또는 삭제(<c:remove>)할 때 사용한다고 한다.

  • var 속성변수명을 지정하며 value 값변수에 대입시킬 값을 준다.

  • scope 속성으로 4대영역안에 변수 값을 넣어줄 수 있다. 

코드를 보는 동안 사용이 굉장히 자유롭다는 것을 느끼는데, var 속성에 변수를 선언해서 몸통부분에 정의하거나,

EL로 영역에서 값을 가져와 var 속성에 정의하거나 하는 등을 보면서 그런생각을 해본다.

 

Map은 EL과 마찬가지로 Entry 형식으로 가져오게 되어있다는 사실을 기억하자.

 

즉,  <c:set var="myAttr3" value="hello3" scope="session" /> 란

     session.setAttribute("myAttr3", "hello3"); 가 아닐까 싶다.

<body>
	
	<%--
	<c:set />
	
	1. 속성(attribute)를 생성 또는 변경 또는 삭제 한다.
	 var atrribute와 함께 사용한다.
	 
	 2.bean 의 Property나 map의 entry를 수정할 수 있다.
	 target attribute와 함께 사용한다.
	 --%>
	 
	 <c:set var="myAttr1" value="hello1" />
	 <c:set var="myAtrr2" value="hello2" scope="request" />
	 <c:set var="myAttr3" value="hello3" scope="session" />
	 <c:set  var="myAtrr4" value="hello4" scope="application" />
	 
	 <p>${pageScope.myAttr1}</p>
	 <p>${requestScope.myAttr2}</p>
	 <p>${sessionScope.myAtrr3}</p>
	 <p>${applicationScope.myAtrr4}</p>
	 
	 <hr />
	 
	 <c:set var="myAttr5" >
	 	Hello World, value5!!!
	 </c:set>
	 
	 <p>${myAttr5}</p>
	 
	 <%
	 Member m = new Member();
	 m.setName("hong");
	 m.setEmail("hi@hi");
	 m.setSsn(100);
	 m.setAddress("seoul");
	 request.setAttribute("member1", m);
	 %>
	 
	 <c:set var="myAttr6" value="${member1}" />
	 <p>${myAttr6.name}, ${myAttr6.email}, ${myAttr6.address}</p>
	 
	 <c:set var="myAttr6" value="${member2}" />
	 <p>${myAttr6.name} , ${myAttr6.email }, ${myAttr6.address }</p>
	 
	 <c:remove var="myAttr5" scope="page"/>
	 <p>삭제 후 : ${myAttr5}</p>
	
</body>

삭제 시에는 <c:remove>를 사용한다. 속성은 <c:set>과 동일한 듯 하다. 

  • scope 속성으로 가져올 영역을 정의하며 

  • var 속성으로 찾아올 키값을 정의한다.

이렇게 되면 불려온 키의 value가 삭제되기에  <p>삭제 후 : ${myAttr5}</p> 의 값은  null 이라 아무것도 출력되지 않는 다.

'EL' 카테고리의 다른 글

18.<c:url> 태그와 <c:param> 태그  (0) 2020.07.15
17.<c:set>태그를 이용한 값 변경 target, value, property  (0) 2020.07.15
15.<c:if> 와 test 속성  (0) 2020.07.15
14. choose-when-otherwise  (0) 2020.07.15
13.function 사용 예제  (0) 2020.07.15