TLD(Tag Library Description) 파일
TLD 파일은 JSP에서 EL 함수 및 커스텀 태그를 선언하기 위한 XML 파일이다.
XML 스키마 파일(web-jsptaglibrary_2_0.xsd)에서 제공하는 엘리먼트만 사용해야 한다.
예제)

EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스 [HelloEL.java] 작성
package xyz.itwill.el;
//EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스
public class HelloEL {
//EL 함수를 사용할 경우 호출될 메소드는 반드시 static 메소드로 선언
public static String hello(String name) {
return name+"님, 안녕하세요.";
}
}
tld 파일 생성하기




[el.tld]

description : TLD 파일에 대한 설명을 제공하는 엘리먼트
<description>EL 함수를 선언한 TLD 파일</description>
short-name : TLD 파일의 이름을 등록하기 위한 엘리먼트
<short-name>elfun</short-name>
uri : JSP 문서에서 TLD 파일을 불러오기 위해 사용하는 식별자를 등록하기 위한 엘리먼트
<uri>http://www.itwill.xyz/mvc/el</uri>
function : EL 함수를 등록하기 위한 엘리먼트
name : EL 함수의 이름을 설정하기 위한 엘리먼트
function-class : EL 함수 사용시 호출될 메소드가 선언된 클래스를 설정하기 위한 엘리먼트
function-signature : EL 함수 사용시 호출될 메소드 머릿부를 설정하기 위한 엘리먼트
<!-- hello 라는 이름의 EL 함수를 호출하면 HelloEL 클래스에서 function-signature 엘리먼트 내의 메소드가 호출된다. -->
<function>
<name>hello</name>
<function-class>xyz.itwill.el.HelloEL</function-class>
<function-signature>java.lang.String hello(java.lang.String)</function-signature>
</function>
전체 소스코드
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
<description>EL 함수를 선언한 TLD 파일</description>
<tlib-version>0.0</tlib-version>
<short-name>elfun</short-name>
<uri>http://www.itwill.xyz/mvc/el</uri>
<function>
<name>hello</name>
<function-class>xyz.itwill.el.HelloEL</function-class>
<function-signature>java.lang.String hello(java.lang.String)</function-signature>
</function>
</taglib>
EL 함수 : EL 표현식에서 사용하기 위한 함수
EL 표현식에서 EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스를 작성하고, TLD 파일에서 EL 함수를 등록 후 JSP 문서에서 taglib 디렉티브를 이용하여 TLD 파일을 제공받아 EL 함수를 사용할 수 있다.
[el_function.jsp]
taglib 디렉티브를 사용하여 TLD 파일을 제공받아 TLD 파일에 등록된 EL 함수 또는 커스텀 태그를 JSP 문서에서 사용할 수 있도록 설정한다.
taglib Directive 는 JSP 문서에 TLD 파일을 제공받아 EL 함수 또는 커스텀 태그를 제공하는 지시어 역할을 한다.
prefix 속성에는 EL 함수 또는 커스텀 태그를 사용하기 위한 접두사(식별자)를 속성값으로 설정하면 된다.
uri 속성에는 TLD 파일을 구분하기 위한 식별자(uri 엘리먼트값) 를 속성값으로 설정하면 된다. - 자동 완성 가능(ctrl+space)
<%@taglib prefix="elfun" uri="http://www.itwill.xyz/mvc/el" %>
전체 소스코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="elfun" uri="http://www.itwill.xyz/mvc/el" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MVC</title>
</head>
<body>
<h1>EL Function</h1>
<hr>
<p>${elfun:hello("홍길동") }</p>
<p>${elfun:hello("임꺽정") }</p>
<p>${elfun:hello("전우치") }</p>
</body>
</html>
출력결과

'학원 > 복기' 카테고리의 다른 글
[MVC] 커스텀 태그(Cutom Tag) (0) | 2023.07.14 |
---|---|
[MVC] EL 연산자 (0) | 2023.07.13 |
[MVC] EL 내장객체 (0) | 2023.07.13 |
[MVC] EL 연산자에서의 [] 사용 (0) | 2023.07.13 |
[MVC] EL(expression Language) (0) | 2023.07.12 |