EL 함수 등록과 호출

서희찬·2023년 12월 11일
0

웹프로그래밍

목록 보기
28/30
post-thumbnail
post-custom-banner

EL Function

java class static method를 EL 함수로 등록하여 호출 가능하고 이를 위해 .tld파일에 저장한다.

TLD(Tag Library Descriptor) File

web.xml과 다르게 하나의 웹 어플리케이션 dir내에 여러개 존재 가능하며 root elemenet는<taglib>이다.

<taglib>
  <tlib-version>1.0</tlib-version>
  <short-name>math</short-name>
</taglib>

java의 static method를 EL 함수로 등록하는 방법

1️⃣ TLD file 작성

<taglib>
  <tlib-version>1.0</tlib-version>
  <short-name>math</short-name>
  <function>
    <name>squareroot</name>
    <function-class>java.lang.Math</function-class>
    <function-signature>double sqrt(double)</function-signature>
  </function>
</taglib>

이를 모두 암기해야한다..
즉 태그 라이브러리 안에 버전, 짧은 이름이 있고
그 밑에 본격적으로 함수를 확인할 수 있다.
함수에서는 진짜 이름과 클래스이름 , 시그니처 확인할 수 있다.

2️⃣ TLD file 등록

<jsp-config>
  <taglib>
    <taglib-uri>http://abcd.co.kr/brain07/math-functions.tld</taglib-uri>
    <taglib-location>/WEB-INF/tlds/math-functions.tld</taglib-location>
  </taglib>
</jsp-config>

파일 식별자, 경로를 넣어 web.xml에 등록한다.
taglib-uri에는 상대 URI도 가능하다.

3️⃣ EL 함수 호출

<%@taglib uri="http://localhost:8080/el/math-functions.tld" prefix="m" %>

taglib지시자를 써서 불러와주고
${m:squareroot(4)}
이렇게 EL에 넣어 사용가능하다.

이를 통해서 사용자 정의 정적 메서드 호출이 가능해진다.

사용자 정의 정적 메서드 호출

  1. 클래스를 만들었다면 이를 컴파일 후(javac ~.java), 컴파일 결과를 WEB-INF/classes/util에 저장한다.
  2. 그 후, tld파일을 열어 function element를 추가한다.
profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)
post-custom-banner

0개의 댓글