[MVC 4-5] EL Function

임승현·2023년 1월 25일
0

MVC

목록 보기
15/27

🌈STEP_1.public static 메서드로 java class를 작성한다.

※xyz.itwill.el 패키지에 HelloEL.java 클래스 생성

📃HelloEL.java

package xyz.itwill.el;
//
//EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스
public class HelloEL {
	//EL 함수를 사용할 경우 호출될 메소드 - 반드시 정적 메소드로 선언
	public static String hello(String name) {
		return name+"님, 안녕하세요.";
	}
}

🌈STEP_2.Tag Library Descriptor(TLD)파일을 작성한다.

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>

🌈STEP_3.JSP 페이지에 taglib 디렉티브를 넣는다.

🌈STEP_4.EL를 사용해서 메서드를 호출한다.

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

0개의 댓글