Variable 디렉티브와 name-given을 이용한 변수 추가
1. Variable 디렉티브를 사용해서 태그 파일을 사용하는 JSP/태그 파일에서 사용할 EL변수 추가
2. Variable 디렉티브의 기본 문법
<%@ variable name-given=”EL변수이름” variable-class=”변수타입” scope=”변수범위”/>
# name-given : 이 태그를 호출한 페이지에 추가할 변수 이름을 정의
# variable-class : 추가될 변수의 타입을 지정 , 기본값 = java.lang.String
# scope : 변수의 범위
è AT_BEGIN : 태그 파일의 시작 태그 시점부터 태그 파일에 추가한 변수 사용
è AT_END : 태그파일의 끝 태그 이후부터
è NESTED : 태그파일의 시작 태그와 끝 태그 사이에서 사용
Name-given 속성 및 scope 속성에 따른 EL 변수 특징
태그 파일
<%@ variable name-given=”sum” scope=”NESTED” %>
…
태그를 호출하는 페이지
<%@ taglib prefix=”tf” tagdir=”/WEB-INF/tags” %>
<tf:some begin=”1” end=”10”>
합계 : ${sum} // 중요한 것은 여기서 scope 범위가 NESTED이기 때문에 sum을 사용할 수 있다는 것
</tf:some>
<%@ tag pageEncoding="euc-kr" %> // Encoding 부분<%@ tag trimDirectiveWhitespaces="true" %> // 공백처리 부분<%@ attribute name="begin" required="true" type="java.lang.Integer" %> // 속성 설정<%@ attribute name="end" required="true" type="java.lang.Integer" %> // 속성 설정<%@ variable name-given="sum" variable-class="java.lang.Integer" scope="NESTED" %> // 태그를 불러오는 페이지에서의 새로운 변수 추가 , 변수의 범위 설정<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> // core 태그<c:set var="sum" value="${0}" /> // 새로운 변수의 초기값 설정<c:forEach var="num" begin="${begin}" end="${end}"> // begin 값과 , end 값을 가져와서 forEach 돌린다 .<c:set var="sum" value="${sum + num}" /> // forEach 돌아가는 동안 새로운 변수에 num변수의 값을 더해준다 .</c:forEach><jsp:doBody /> // Body태그 그대로 출력
tag 파일을 쓸 use_sum.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib prefix="tf" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<tf:sum begin="1" end="10"> // 태그파일을 사용함과 동시에 begin 값에 1을 , end 값에 10을 ,
1-10까지 합 : ${sum}
</tf:sum> // 가공되어진 sum 출력
</body>
</html>
'학부공부 > 웹시스템설계및개발' 카테고리의 다른 글
MVC 패턴 기초. (0) | 2018.10.13 |
---|---|
서블릿(Servlet) 기초. (0) | 2018.10.13 |
태그 파일에서 몸체 내용 처리 (0) | 2018.10.13 |
EL , Core , FMT , functions 태그를 사용하여서 체크박스값 가져오기 (0) | 2018.10.03 |
JSTL의 Foreach를 통한 이중 배열 다루기 . (2) | 2018.09.30 |
#IT #먹방 #전자기기 #일상
#개발 #일상