고똘이의 IT 개발이야기

- 스프링 커스텀 태그 선언방법 및 사용법 -

 

안녕하세요.

오늘은 개발을 하면서 jsp에서 쓸 수 있는 Custom Tag에 대해서

선언방법과 사용법에 대해서 설명 드리겠습니다.

 

 

1. build.gradle에 dependencies 에 tag-lib 추가.

1
2
3
4
 
compile group: 'org.apache.taglibs', name: 'taglibs-standard-impl', version: '1.2.5'
 
 

 

2. refresh gradle project를 한번 해줘서 다운로드 받습니다.

 

3. 프로젝트에 /WEB-INF/tlds/test-taglibs.tld

    위의 path에 태그 파일을 추가합니다.

.

 

4. test-taglibs.tld의 소스입니다.

   아래의 번호로 매긴 설명이 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
 
    <description>Test Tag Library</description>
    <tlib-version>2.0</tlib-version>
 
    <short-name>ct</short-name>
 
    <function>
        // 1번
        <description>
            현재 테스트 중인 태그입니다.(설명)
        </description>
        // 2번
        <name>testNm</name>
        // 3번
        <function-class>com.example.test.tag.TagLibrary</function-class> // 커스텀태그의 class파일의 패키지와 클래스명을 넣는다.
        // 4번               return type           tagName          parameter type, parameter type
        <function-signature>java.lang.String testNm( java.lang.Stringjava.lang.String )</function-signature>
    </function>
</taglib>
 
 
 

5.   1번 - 현재 태그의 설명.

     2번 - 현재 tag의 호출 이름.

     3번 - 현재 태그 라이브러리를 명시한 class파일의 위치와 이름.

     4번 - 현재 태그의 return type과 parameter type를 명시.( 예를들어 method ).

 

6. test-taglibs.tld에서 명시한 패키지에 Taglibrary Class 생성 및 메서드 생성.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class TagLibrary {
 
    public static String testNm(String testP1, String testP2){
 
        System.out.println("테스트 데이터 뭐니 :: " + testP1);
        System.out.println("테스트 데이터 뭐니 :: " + testP2));
        
        return testP1+testP2;
    }
 
}
 
 
 

 

7. jsp에 taglibray를 include합니다.

   'testNm'를 호출시 return 값으로

  '테스트 파라미터1테스트 파라미터2'

   를 표출합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="ct" uri="/WEB-INF/tlds/test-taglibs.tld"%>
 
 
<html>
    <head>
 
    </head>
    
    <body>
            
        <h3> ${ct:testNm('테스트 파라미터1''테스트 파라미터2')} </h3>
 
    </body>
</html>
 
 
 

 

이상입니다.

감사합니다.

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band