<c:set> 태그는 값을 변경할 수 있다고도 하였다. 이는 target 속성과 property 속성 value 속성으로 정의된다.
-
target 속성은 말그대로 가져올 속성을 정의한다.
-
property 속성으로 해당 객체나 컬렉션에 정의된 프로퍼티명을 선언한다.
-
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 |