[MVC 5-3] JSTL_Core - EL 지원 태그

임승현·2023년 1월 26일
0

MVC

목록 보기
21/27

🐧Core_set 태그

※ 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>

🐧Core_out 태그

※ 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>

0개의 댓글