※xyz.itwill.el 패키지에 HelloEL.java 클래스 생성
📃HelloEL.java
package xyz.itwill.el; // //EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스 public class HelloEL { //EL 함수를 사용할 경우 호출될 메소드 - 반드시 정적 메소드로 선언 public static String hello(String name) { return name+"님, 안녕하세요."; } }
1. WEB-INF 폴더에 tld 폴더 생성 후 xml File 생성
2. 확장자는 tld로 입력 → next
3. 체크항목 확인 → next
4. 체크항목 확인 및 2_1.xsd 클릭 → next
5. javaee 클릭 → Edit
6. Prefix 입력란 javaee 지우고 공백 → Ok
7. <no pretix 확인 → Finish
📃el.tld
<?xml version="1.0" encoding="UTF-8"?> <taglib version="2.1" xmlns="Http://java.sun.com/xml/ns/javaee" 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/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd "> <!-- description : TLD 파일에 대한 설명을 제공하는 엘리먼트(생략가능) --> <description>EL 함수를 선언하기 위한 TLD 파일</description> <!-- tlib-version : TLD 파일의 버전을 등록하기 위한 엘리먼트(생략가능) --> <tlib-version>1.0</tlib-version> <!-- short-name : TLD 파일의 이름을 등록하기 위한 엘리먼트(생략가능) --> <short-name>EL</short-name> <!-- ★uri : JSP 문서에서 TLD 파일을 불러오기 위해 사용하는 식별자를 등록하기 위한 엘리먼트(생략X) --> <uri>http://www.itwill.xyz/mvc/el</uri> <!-- --> <!-- function : EL 함수를 등록하기 위한 엘리먼트 --> <function> <!-- name : EL 함수의 이름을 설정하기 위한 엘리먼트 --> <name>hello</name> <!-- function-class : EL 함수 사용시 호출될 메소드가 선언된 자료형(클래스)을 설정하기 위한 엘리먼트 --> <function-class>xyz.itwill.el.HelloEL</function-class> <!-- function-signature : EL 함수 사용시 객체에 의해 호출되는 메소드의 머릿부를 설정하기 위한 엘리먼트 --> <function-signature>java.lang.String hello(java.lang.String)</function-signature> </function> </taglib>
📃el_function.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- taglib 디렉티브를 사용하여 TLD 파일을 제공받아 JSP 문서에서 EL 함수 또는 커스텀 태그를 사용할 수 있도록 설정 --%> <%-- taglib Diective : JSP 문서에 TLD 파일에 등록된 EL 함수 또는 커스텀 태그를 제공하는 지시어 --%> <%-- prefix 속성 : EL 함수 또는 커스텀 태그를 사용하기 위한 접두사를 속성값으로 설정 --%> <%-- uri 속성 : TLD 파일의 식별자(url 엘리먼트값)를 속성값으로 설정([ctrl]+[space]로 자동 완성 기능 사용 --%> <%@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>EL 함수 : EL 표현식에서 사용하기 위한 함수</p> <p>EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스를 작성하고 TLD 파일에서 클래스의 메소드를 EL 함수로 등록 후 JSP 문서에서 taglib 디렉티브를 이용하여 EL 함수를 제공받아 사용</p> <hr> <p>${elfun:hello("홍길동") } <p>${elfun:hello("임꺽정") } </body> </html>