-
[헤드퍼스트 SERVLET&JSP] 9-2. JSTL 에 없는 태그 라이브러리 사용하기개발입문/Servlet&JSP 2017. 3. 4. 11:22
복습
1. JSTL 과 EL
JSTL | Java server page Standard Tag Library
aligns with EL | Expression Language
JSTL 은 논리적인 처리를 위해 사용되는 스크립트 코드를 대체하기 위한 태그
EL은 자바코드를 사용하지 않고, 더 간편한 출력을 지원하는 도구
2. Business System Tier 에서-- Business System Tier 중 Web Tier 에서- JSP Pages & Servlet 을 통해 사용자에 따라 동적인 웹페이지를 출력하며,- 사용자의 각 상태 / 정보는 JavaBeans 를 통해 관리한다.즉, JSTL 과 EL 은 JSP 에서 사용자의 상태와 논리적인 처리를 도와주는 도구이다.출처 | http://docs.oracle.com/javaee/5/tutorial/doc/bnaay.html#bnabg
학습 목표
taglib 지시자 문법과 의미
JSP 표준 태그 라이브러리
커스텀 태그 라이브러리 파일
커스텀 태그는 태그 뒤에서 돌아가는 코드 (즉 JSP에서 태그를 사용하면 실제로 호출되는 자바 코드)를 개발해놓은 라이브러리입니다. 우선 커스텀 태그를 어떻게 사용하는 가를 정리해보려고 합니다. 커스텀 태그 라이브러리의 문서 내용이 빈약하더라도- 유지보수는 사용하는 개발자의 몫입니다. ㅜ_ㅜ
커스텀 태그 라이브러리 방식
출처 | http://www.javatpoint.com/example-of-jsp-custom-tag
1) Tag handler class: 커스텀 태그를 사용하면 실제로 호출되는 자바 코드
2) TLD file: Tag 서술(?) 파일로 태그 이름, 속성, 핸들러 등을 명시한 파일
3) JSP page: 커스텀 태그를 사용할 JSP 뷰페이지
TLD (Tag Library Descriptor)
파일 구성
1. 라이브러리 URI (Unique Resource Identifier)
2. 태그 이름과 문법(속성, 핸들러 등)
name 이름 / description설명
tag-class 자바 핸들러
body-cotent 허용여부
attribute 태그 내 속성
name 이름, required 필수여부
and rtexprvalue 표현식가능여부(EL, 스크립팅, JSP 표준액션)
<taglib .... >
// tag-library 명세
<tlib-version>0.9</tlib-version>
<short-name>RandomTags</short-name>
<uri>randomThings</uri>
// (tag-lib 안의) tag 명세
<tag>
<description>random advice</description>
<name>advice</name>
<tag-class>foo.AdvisorTagHandler</tag-class>
<body-content>empty</body-content>
<attribute>
<name>user</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag> </taglib>
// 태그를 사용하는 JSP
<html><body>
<%@ taglib prefix="mine" uri="randomThings" %>
Advisor Page<br>
<mine:advice user="${userName}" />
</body></html>
1. rtexprevalue
Runtime Expression Value
- 속성값을 런타임 시 실행(평가)할 것인지 = true
- or 변환 시 실행(평가)할 것인지 (속성값으로 문자열만 사용가능) = false
+a. 표현식
EL <mine:advice user="${userName}" />
스크립팅 <mine:advice user="<%= request.getAttribute("username")" %> />
표준액션 <jsp:attribute name="user">${userName}</jsp:attribute>
2. body-content
empty: 몸체불가
몸체가 없거나, 몸체 내용이 없거나, <jsp:attribute>만 있거나
scriptless: 스크립트 외 가능
tagdependent: 태그몸체를 텍스트 취급
JSP: JSP 안에 들어갈 수 있는 것들 모두
웹 컨테이너가 찾는
TLD 파일의 위치
uri 는 유일식별자일 뿐. tag library 의 정확한 주소는 아닙니다.
유일한 이름으로 쓰기 위해 URL 의 형식으로 기술한 것일 뿐.
컨테이너가 알아서 아래 경로들에서 TLD 를 찾아 매핑합니다.
1) WEB-INF 안
2) WEB-INF 아래 하위 디렉토리 안
3) WEB-INF/lib 밑 jar 파일, jar 안 META-INF
4) WEB-INF/lib 밑 jar 파일, jar 안 META-INF 아래 하위 디렉토리
다음 포스트
태그 핸들러를 작성하고 매핑하는 법 까지-
커스텀 태그 핸들러를 완벽하게 익히는 그 순간까지~
'개발입문 > Servlet&JSP' 카테고리의 다른 글
[헤드퍼스트 SERVLET&JSP] 10-1. 사용자정의 태그 개발 (0) 2017.03.05 [헤드퍼스트 SERVLET&JSP] 9-3. 커스텀 태그 핸들러 (0) 2017.03.05 [헤드퍼스트 Servlet&Jsp] 9-1. JSTL: JSP 표준 태그 라이브러리 (0) 2017.03.02 [헤드퍼스트 Servlet&Jsp] 8-3. EL에서 함수 사용 (0) 2017.02.26 [헤드퍼스트 Servlet&Jsp] 8-2. EL로 파라미터 불러오기 (0) 2017.02.26