EL

17.<c:set>태그를 이용한 값 변경 target, value, property

Jungsoomin :) 2020. 7. 15. 22:12

<c:set> 태그는 값을 변경할 수 있다고도 하였다. 이는 target 속성property 속성 value 속성으로 정의된다.

  1. target 속성은 말그대로 가져올 속성을 정의한다.

  2. property 속성으로 해당 객체나 컬렉션에 정의된 프로퍼티명을 선언한다.

  3. value 속성변경할 값을 선언한다.

즉 <c:set target="${myBean }" value="lee" property="name" /> 이란

request에서 myBean 키값의 객체를 가져온(target) 후  lee를(value) setName() 메서드(property)로 읽어들인다.

 

request.getAttribute("myBean").setName("lee"); 쯤 되는 듯 싶다.

<body>
	<%
	Member m = new Member();
	m.setName("kim");
	m.setSsn(100);
	m.setAddress("seoul");
	m.setEmail("hi@hi");
	request.setAttribute("myBean", m);
	%>
	<p>변경 전 : ${myBean.name }, ${myBean.address }</p>
	<c:set target="${myBean }" value="lee" property="name" />
	<p>변경 후: ${myBean.name }, ${myBean.address }</p>
	
	<br />
	
	<c:set target="${myBean }" property="address" >
	 busan, Korea
	</c:set>
	<p>변경 후 :${myBean.name }, ${myBean.address }</p>
	
	<hr />
	<%
	Map<String, String> map = new HashMap<>();
	map.put("key1", "value1");
	request.setAttribute("myMap", map);
	%>
	<p>맵 변경 전 : ${myMap.key1 }</p>
	<c:set target="${myMap }" property="key1" value="change1" />
	<p>맵 변경 후 : ${myMap["key1"] }</p>
	<c:set target="${myMap }" property="key2" value="value2" />
	<p>맵 변경 후 : ${myMap["key2"] }</p>
</body>

Map은 entry 형식으로 읽어들인다는 점도 기억하자.

'EL' 카테고리의 다른 글

18.<c:url> 태그와 <c:param> 태그  (0) 2020.07.15
16.<c:set> 태그와 <c:remove> 태그와 속성  (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