※ webapp/jstl 폴더에 core_set.jsp 생성
📢set 태그 : 객체를 스코프(Scope) 속성값으로 저장(변경)하기 위한 태그
📌var 속성 : 스코프 속성명을 속성값으로 설정
📌value 속성 : 스코프 속성값을 속성값으로 설정
📌scope 속성 : page, request, session, application 중 하나를 속성값으로 설정
📌remove 태그 : 스코프 속성값을 속성명을 이용하여 삭제하는 태그📃core_set.jsp
<%@page import="xyz.itwill.el.Student"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- taglib Directive를 이용하여 JSTL의 Core 태그 라이브러리를 JSP 문서에 포함해야만 커스텀 태그를 제공받아 사용 가능 - prefix 속성값은 [c]로 설정 --%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - EL 지원 태그</h1> <hr> <%-- set 태그 : 객체를 스코프(Scope) 속성값으로 저장(변경)하기 위한 태그 --%> <%-- var 속성 : 스코프 속성명을 속성값으로 설정 --%> <%-- value 속성 : 스코프 속성값을 속성값으로 설정 --%> <%-- scope 속성 : page, request, session, application 중 하나를 속성값으로 설정 --%> <%-- => scope 속성을 생략한 경우 [page] 속성값을 기본값으로 사용 --%> <c:set var="su" value="10" scope="page"/> <p>su = ${su }</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- 스코프 속성명이 같은 경우 스코프 속성값 변경 처리 --%> <%-- value 속성 대신 태그내용으로 스코프 속성값 처리 가능 --%> <c:set var="su">20</c:set> <p>su = ${su }</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- value 속성값으로 EL 사용 가능 - EL 표현식에서 EL 연산자 사용 --%> <c:set var="tot" value="${su+10 }"/> <p>tot = ${tot }</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <c:set var="name" value="홍길동"/> <p>name = ${name }</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <c:set var="now" value="<%=new Date() %>"/> <%-- EL 표현식에 의해 제공받은 스코프 속성값이 Java 객체인 경우 자동으로 toString() 메소드 호출 --%> <p>now = ${now }</p> <p>now.getTime() = ${now.getTime() }</p> <p>now.time = ${now.time }</p><%-- 이게 조금더 효율적 --%> <%-- ----------------------------------------------------------------------------------------------------- --%> <c:set var="student" value="<%=new Student() %>"/> <%-- Student 클래스에 toString() 메소드가 오버라이드 선언되지 않아 Object 클래스의 toString() 메소드 호출 --%> <p>student = ${student }</p><%-- 메모리 주소 호출됨 --%> <p>학번 = ${student.num }, 이름 = ${student.name }</p><%-- 아무것도 출력 안됨 --%> <%-- set 태그를 이용하여 스코프 속성값으로 제공된 객체의 필드값 변경 가능 - Setter 메소드 자동 호출 --%> <%-- target 속성 : 필드값을 변경할 객체(스코프 속성값 - EL)를 속성값으로 설정 --%> <%-- property 속성 : 필드값을 변경할 객체의 필드명을 속성값으로 설정 --%> <c:set target="${student }" property="num" value="1000"/> <c:set target="${student }" property="name" value="홍길동"/> <p>학번 = ${student.num }, 이름 = ${student.name }</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- remove 태그 : 스코프 속성값을 속성명을 이용하여 삭제하는 태그 --%> <c:remove var="student"/> <p>student = ${student }</p> </body> </html>
※ webapp/jstl 폴더에 core_out.jsp 생성
📢out 태그 : 값(EL - 스코프 속성값)을 클라이언트에게 전달하기 위한 출력 태그
📃core_out.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - EL 지원 태그</h1> <hr> <c:set var="num" value="100"/> <p>정수값 = ${num }</p> <%-- --%> <p>정수값 = <c:out value="${num }"/></p> <hr> <%-- 스코프 속성값으로 HTML 태그가 포함된 문자열(String 객체) 저장 --%> <c:set var="html" value="<font size='7' color='red'>안녕하세요.</font>"/> <%-- EL을 사용하여 HTML 태그가 포함된 속성값을 문자열로 제공받아 출력할 경우 HTML 태그로 처리되어 출력 --%> <p>html = ${html }</p> <%-- out 태그를 사용하여 HTML 태그가 포함된 속성값을 문자열로 제공받아 출력할 경우 HTML 태그도 문자열로 처리되어 출력 --%> <p>html = <c:out value="${html }"/></p> </body> </html>