-
[헤드퍼스트 Servlet&Jsp] 9-1. JSTL: JSP 표준 태그 라이브러리개발입문/Servlet&JSP 2017. 3. 2. 00:16언어를 배울 때 가장 기본이 되는 기능들에 대해서 JSP로 대응할 수 있도록 구현해 놓은것이 바로 JSP 표준 태그 라이브러리 이다. 만약 더 정교한 기능이 필요하다면 커스텀 태그 라이브러리를 (핸들러를 직접 구현해서) 활용할 수 있다.학습목표
taglib 지시자 문법과 의미
JSP 표준 태그 라이브러리
커스텀 태그 라이브러리 파일
Docs: http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/index.html
각 태그 마다 필수 옵션, 선택 옵션이 있는데,
사실 java 문법을 한번만 공부했어도 쉽게 접근할 수 있는 개념들이었다. ;)
JSP Core Library 등록
코어 라이브러리 사용 등록<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>출력
출력 c:out
<c:out value="" [escapeXML=""] [default=""] >
XML 엔티티를 문자로 출력하려면 escapeXml false (default true)
<c:out value='${pageContent.rawHTML}' escapeXml='false' />
변수가 NULL 일 경우 다른 default 값을 출력
<c:out value='${user}' default='guest' />
<c:out value='${user}'>
guest
</c:out>.</b>
루핑 Loopfor 루핑 Looping <c:forEach><c:forEach var="" items="" >${varValue}</c:forEach><table><c:forEach var="movie" items="${movieList}" ><tr><td>${movie}</td></tr></c:forEach></table><c:forEach var="movie" items=${movieList}" varStatus="movieLoopCount" >... Count: ${movieLoopCount.count}LoopTagStatus 객체, count 프로퍼티if/else 조건문조건문<c:if> if(true) { }<c:choose> switch () { }<c:when> case1: case2:<c:otherwise> else { }<c:if test="${userProf='safety'}">Our breaks will never lock up. (...)</c:if><c:choose><c:when test="${userProf='maintenance'}">you won't have to service these brakes for at least three years.</c:when><c:otherwise>Our brakes are the best.</c:otherwise></c:choose>변수 설정 set변수 설정 / javaBean, Map 설정<c:set [var=""] [scope=""] [value=""] /><c:set [target=""] [property=""] [value=""] />target 은 JavaBean 이거나 Map !<c:set var="userLevel" scope="session" value="cowboy" /><c:set var="userLevel" scope="session">Sheriff, Bartender, Cowgirl</c:set><c:set target="${PetMap}" property="dogName" value="Clover" /><c:set target="${person} property="name" >${foo.name}</c:set>변수 삭제 remove
[remove 변수 삭제]<c:remove var="" [scope=""] /><c:remove var="userStatus" scope="request" />자원 임포트 import
[import 컨텐츠 포함(내부, 외부자원 모두)]<c:import url=""><c:param name="" value=""></c:import><c:import url="Header.jsp"><c:param name="subTitle" value="We take the sting out of SOAP." /></c:import>url 하이퍼링크 관련 url[하이퍼링크]<c:url value="" [var=""]>URL 재작성 ok / URL 인코딩 no!<a href="<c:url value="/inputComments.jsp" />"Click here</a><c:url value="/inputComments.jsp" var="inputURL" ><c:param name="firstName" value="${first}" /><c:param name="secondName" value="${second}" /></c:url>에러 처리 c:catch[표준 오류 핸들링 매커니즘]예외사항이 발생하는 페이지에서 --- 오류 처리용 페이지로<c:remove var="" [scope=""] />1. DD 의 <error-page>모두 다 적용되는 (디폴트) 오류페이지 선언<error-page><exception-type>java.lang.Throwable</exception-type><location>/errorPage.jsp</location></error-page>특정 예외사항에 대한 오류페이지 선언<error-page><exception-type>java.lang.ArithmeticException</exception-type><location>/errorPage.jsp</location></error-page>HTTP 상태 코드에 따라 다르게 오류페이지 선언<error-page><error-code>404</error-code><location>/notFoundException.jsp</location></error-page>2. JSP errorPageiserrorPage = True 인 페이지만 exception 내장객체 사용가능exception의 type은 "java.lang.Throwable"<%@ page isErrorPage="true" %><html><body>You caused a ${pageContext.exception}. <br> (...)3. <c:catch>오류가 생길위험이 있는 코드를 <c:catch>로 감싼다. 그 코드가 없던 것처럼 진행된다.<c:catch> 태그가 끝나고 난 다음에도 나중에 Exception 객체를 다루고 싶다면 var 속성 이용<c:catch [var="" /><c:catch var="myException" ><% int x=10/0; %></c:catch><c:if test="${myException!=null}">There was an exception: ${myException.message}</c:if>JSTL core Tag Library 를 살펴보았으니.
docs 을 좀더 자세히 읽어봐야겠다 :0
'개발입문 > Servlet&JSP' 카테고리의 다른 글
[헤드퍼스트 SERVLET&JSP] 9-3. 커스텀 태그 핸들러 (0) 2017.03.05 [헤드퍼스트 SERVLET&JSP] 9-2. JSTL 에 없는 태그 라이브러리 사용하기 (0) 2017.03.04 [헤드퍼스트 Servlet&Jsp] 8-3. EL에서 함수 사용 (0) 2017.02.26 [헤드퍼스트 Servlet&Jsp] 8-2. EL로 파라미터 불러오기 (0) 2017.02.26 [헤드퍼스트 Servlet&JSP] 7-3 EL Expression Language 소개 (0) 2017.02.19