EL에서 사용할 변수나 자바빈즈를 생성할 때 사용한다. JSP에서 영역에 속성을 저장할 때 사용하는 setAttribute()메서드와 같은 역할이다.
<c:set var="변수명" value="값" scope="영역" />
혹은
<c:set var="변수명" scope="영역">
value 속성에 들어갈 값
</c:set>
자바빈즈나 컬렉션을 생성할 때는 target, property속성 사용
<c:set var="변수명" value="저장할 객체 혹은 컬렉션" scope="영역" />
<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값" />
<%@ page import="java.util.Date" %>
<%@ page import="com.common.Person" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Core set</title>
</head>
<body>
<%-- 변수 선언--%>
<c:set var="directVar" value="100"/>
<c:set var="elVar" value="${ directVar mod 5}"/>
<c:set var="expVar" value="<%= new Date()%>"/>
<c:set var="betweenVar">변수값 이렇게 설정</c:set>
<h2>El을 이용해 변수 출력</h2>
<ul>
<li>directVar : ${ pageScope.directVar }</li>
<li>elVar : ${ elVar }</li>
<li>expVar : ${ expVar }</li>
<li>betweenVar : ${ betweenVar }</li>
</ul>
<h2>자바빈즈 생성 1 생성자 사용</h2>
<c:set var="personVar1" value='<%= new Person("박문수", 50)%>' scope="request"></c:set>
<ul>
<li>이름: ${requestScope.personVar1.name}</li>
<li>나이: ${personVar1.age}</li>
</ul>
<h2>자바빈즈 생성2 target property 사용</h2>
<c:set var="personVar2" value="<%=new Person()%>" scope="request"></c:set>
<c:set target="${personVar2}" property="name" value="정약용"></c:set>
<c:set target="${personVar2}" property="age" value="60"></c:set>
<ul>
<li>이름: ${requestScope.personVar2.name}</li>
<li>나이: ${personVar2.age}</li>
</ul>
</body>
</html>
