Link Search Menu Expand Document

JSP JSTL

Table of contents

  1. Custom Tag
    1. What is Custom Tag?
    2. Advantage of Custom Tag
    3. Sort of Custom Tag
    4. Tag File
    5. 태그 파일에서 사용할 수 있는 디렉티브
    6. 태그디렉티브의 속성
    7. 태그 파일의 위치와 태그 파일의 참조 방법
    8. 태그파일에서 사용가능한 기본 객체
    9. 태그파일의 위치
  2. JSTL
    1. What is JSTL?
    2. Why Use JSTL?
    3. Features of JSTL
    4. JSTL Tags
    5. Download JSTL Library

Custom Tag

What is Custom Tag?

프로그램을 개발하다보면 JSP액션태그나 JSTL태그만으로 부족할 때가 있는데 이를 지원하기 위해서

사용자가 원하는 목적에 맞게 새로운 태그를 만들어서 사용할 수 있도록 하는 태그

Advantage of Custom Tag

  1. 재사용: 한번 작성한 커스텀 태그는 어떤 JSP 컨테이너에서도 사용이 가능함

  2. 쉽고 단순한 JSP 코드를 작성 : 자바코드에 익숙하지 않은 개발자들도 커스텀 태그를 사용하면 보다 쉽게 JSP 페이지를 작성가능

  3. 코드의 가독성 향상 : 커스텀 태그를 사용하면 스크립트 코드를 줄일 수 있기 때문에 JSP의 가독성을 높일 수 있음

Sort of Custom Tag

  • JSP 1.2 스타일로 구현한 커스텀 태그

  • JSP 2.0 또는 그 이상 버전의 SimpleTag를 사용한 커스텀 태그

  • JSP 2.0 또는 그 이상 버전의 태그 파일을 사용한 커스텀 태그

위 세가지 중 첫번째와 두번째 방식이 주로 커스텀 태그의 표준 인터페이스를 구현하거나 클래스를 상속받아서 구현하기에 개발자가 사용하기 적합함

Tag File

서블릿의 복잡한 구현 과정을 JSP가 쉽게 처리해 주는 것 처럼, 커스텀 태그 클래스를 만들기 위한 복잡한 과정을 커스텀 태그 파일이 쉽게 처리해줌

정의하자면, JSP 문법을 사용해서 커스텀 태그로 동작할 수 있도록 만들어진 소스 코드

태그 파일은 JSP 페이지와 동일한 문법을 사용함

웹 컨테이너가 자동으로 태그파일도 커스텀 태그 클래스로 변환함

태그 파일에서 사용할 수 있는 디렉티브

디렉티브설명
tagJSP 페이지의 page 디렉티브와 동일. page디렉티브가 JSP 페이지에 대한 설정 정보 등을 명시하는 것 처럼 tag디렉티브는 태그 파일의 정보를 명시
taglib태그 파일에서 사용할 태그 라이브러리를 명시할 때 사용, 사용법은 JSP 페이지와 동일
includeJSP 페이지와 마찬가지로 태그 파일에 특정한 파일을 포함시킬 때 사용. 단, 태그 파일에 포함되는 파일은 태그 ㅏ일에 알맞은 문법으로 작성되어야 함
attribute태그 파일을 커스텀 태그로 사용할 때 입력받을 속성을 명시
variableEL변수로 사용할 변수에 대한 정보를 지정

태그디렉티브의 속성

속성설명
display-name태그파일을 사용될 이름을 지정. 기본값은 확장자 “.tag”를 제외한 나머지 파일이름
body-contentbody 내용의 종류를 정의 empty, tagdependent, scriptless의 세가지값 중 하나를 사용할 수 있음
dynamic-attributes동적속성을 정의 속성<key, value>를 저장하는 Map객체를 page범위의 속성에 저장할 때 사용할 이름을 정의
description태그에 대한 설명
importpage 디렉티브의 import 속성과 동일
pageEncodingpage 디렉티브의 pageEncoding 속성과 동일
defferedSyntaxAllowedAsLiteralpage 디렉티브의 defferedSyntaxAllowedAsLiteral 속성과 동일, 이 값이 true일 경우 ${expr} or #{expr}형식의 값은 문자열로 처리하는 옵션
trimDirectiveWhitespacespage 디렉티브의 trimDirectiveWhitespaces 속성과 동일

태그 파일의 위치와 태그 파일의 참조 방법

태그파일에서 사용가능한 기본 객체

  • jspContext : pageContext가 제공하는 setAttribute(), getAttribute() 메서드를 그대로 제공하며 각 속성과 관련된 작업을 처리

  • request : JSP 페이지의 request 기본객체와 동일함

  • response : JSP 페이지의 response 기본 객체와 동일

  • session : JSP 페이지의 session 기본 객체와 동일

  • application : JSP 페이지의 application 기본 객체와 동일

  • out : JSP 페이지 out 기본객체와 동일

태그파일의 위치

WEB-INF/tags 폴더나 그 하위폴더에 위치. 이폴더에 위치한 파일중에서 ~.tag, ~tagx확장자 파일만 태그파일로 인식함


JSTL

What is JSTL?

JSTL(JavaServer Pages Standard Tag Library) : 커스텀 태그 중 자주 사용하는 것들을 별도로 표준화한 태그 라이브러리

커스텀 태그 : JSP를 확장시켜주는 기능, 액션태그와 마찬가지로 태그 형태로 기능을 제공

액션태그와의 차이점은 커스텀 태그는 개발자가 직접 개발해주어야 함

Why Use JSTL?

사용목적 : JSP코드에서 중복되는 것을 모듈화하거나 스크립트 코드를 사용할 때 발생하는 소스 코드의 복잡함을 없애기 위해 사용

JSP는 스크립트릿과 표현식등의 스크립트 코드와 HTML등의 코드가 뒤섞여서 사용하기 때문에

JSP코드는 가독성이 떨어지고 코딩하기가 매우 복잡하게 되어있어서 개발이 편리하지 않게 되었음

그래서 JSP를 새로운 태그를 포함한 표준 라이브러리 형태로 제공하여 보다 쉽게, 가독성이 좋게 코딩할 수 있도록 제공하는데

JSP페이지에서 많이 사용되는 논리적인 판단, 반복처리, 포맷처리 등을 쉽게 할 수 있도록 표준으로 만들어서 라이브러리형태로 제공하는 것이 JSTL

Features of JSTL

  • if-else조건문 그리고 for 구문과 같은 반복 처리를 커스텀 태그를 이용해서 구현할 수 있도록 함

  • 스크립트 코드보다 이해하기 쉽기 때문에 자바 언어에 익숙하지 않더라도 JSTL을 이용해서 어느 정도 논리적인 처리를 수행할 수 있음

JSTL Tags

JSTL은 다섯가지 태그를 제공하고 있음

→ 코어, 국제화, 함수를 가장 많이 사용함

라이브러리주요기능접두어관련 URI
core변수지원, 흐름제어, URL처리chttp://java.sun.com/jsp/jstl/core
XMLXML코어, 흐름제어, XML 변환처리xhttp://java.sun.com/jsp/jstl/xml
국제화지역, 메시지형식, 숫자/날짜 형식fmthttp://java.sun.com/jsp/jstl/fmt
DBSQL, 메시지 형식sqlhttp://java.sun.com/jsp/jstl/sql
함수컬렉션처리, Strin 처리fnhttp://java.sun.com/jsp/jstl/functions

Download JSTL Library

jstl-1.2.jar 파일을 클릭해서 다운로드 하면 됨

MVNREPOSITORY 다운로드 하기


Table of contents


이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.