1 / 52

JSTL (JSP Standard Tag Library)

JSTL (JSP Standard Tag Library). 목 차. EL (Expression Language) JSTL(JSP Standard Tag Library) . EL ( Expression Language ). 정의. JSP 2.0 스펙에 포함되어 JSP 에서 자바 scripting 대신에 데이터를 출력하기 위한 기능이 확장된 표현언어이다 . 특징. 변수와 연산자를 포함할 수 있다 . JSP 의 scope 에 저장된 속성 및 자바 빈 속성도 EL 의 변수로 사용 가능하다 .

selia
Download Presentation

JSTL (JSP Standard Tag Library)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSTL (JSP Standard Tag Library)

  2. 목 차 EL (Expression Language) JSTL(JSP Standard Tag Library)

  3. EL ( Expression Language ) • 정의 • JSP 2.0 스펙에 포함되어 JSP에서 자바 scripting 대신에 데이터를 출력하기 위한 기능이 확장된 표현언어이다. • 특징 • 변수와 연산자를 포함할 수 있다. • JSP의 scope에 저장된 속성 및 자바 빈 속성도 EL의 변수로 사용 가능하다. • EL 자체의 내장객체가 제공된다. • 표현식에는 숫자, 문자열 , boolean값과 null 도 포함할 수 있다.

  4. EL ( Expression Language ) • 방법 • ${ 표현식} •  항상 중괄호({})로 묶고, 제일 앞에 달러 기호($)를 붙인다. • 표현 예 JSP : <%=pageContext.getAttribute(“a”).getFoo()%> JSTL : <c:out value=“${a.foo}”/> EL : ${a.foo} • 주의사항 • 기본적으로 EL 사용을 무시하도록 설정이 되어있다. • 반드시 page Directive 에서 isELIgnored=“false”로 설정한다.

  5. EL ( Expression Language ) • 실습 예제 • 자바 빈의 속성 출력

  6. EL ( Expression Language ) • JSP 페이지 선언시isELIgnored="false" 를 추가하여야 한다!!<%@ page language="java" import="java.util.*" contentType="text/html;charset=euc-kr" isELIgnored="false" %>버전에 따라 명시 유무가 틀리지만 isELIgnored="true" 할 경우에는 지원하지 않는다. 아래와 같이 표현식이 출력된다 isELIgnored="false" 로 설정할 경우!!

  7. EL ( Expression Language )

  8. EL ( Expression Language ) • EL 표현식

  9. EL ( Expression Language )

  10. EL ( Expression Language )

  11. EL ( Expression Language ) • 빈과 맵: 도트(.) 연산자, 브래킷[] 연산자 둘 다 사용 가능

  12. EL ( Expression Language ) • 배열 이나 List 인 경우 • Servlet 코드 • String[] KoreaMusic={“A”, “B”, “C”, “D”}; • request.setAttribute(“musicList”,KoreaMusic); • -JSP 코드 • First song is : ${musicList[0]} • (출력결과) First song is : A • Second song is : ${musicList[“1”]} • (출력결과) Second song is : B • Beans 와 Map 인 경우 • Servlet 코드 • Java.util.MapmusicMap = new java.util.HashMap(); • musciMap.put (“a” ,”A”); • musciMap.put(“b” ,”B”); • musciMap.put(“c” ,”C”); • musciMap.put(“d” ,”D”); • request.setAttribute(“musicMap”,musicMap); • -JSP 코드 • a is : ${musicMap.a} / a is : ${musicMap[“a”]} • (출력결과) a is : A • a is : ${musicMap[a]} 두 표현식 모두 “a”를 맵키로 처리 “a”라는 이름의 속성을 찾음, Null값을 반환

  13. EL ( Expression Language ) • EL 연산자 : 데이터와 리터럴이 결합 및 비교될 수 있도록 한다! • 산술 연산자를 사용하는 EL 익스프레션 • ${item.price * (1 + taxRate[user.address.zipcode])}  • 관계형 연산자 및 논리적 연산자를 사용하는 EL 익스프레션 • ${(x >= min) && (x <= max)} • EL 내장 객체 Map

  14. EL ( Expression Language ) • EL 내장 객체 표현식 예)

  15. EL ( Expression Language ) • 실습 예제 • Scope 사용 결과

  16. EL ( Expression Language ) • 실습 예제 • Param사용 결과

  17. EL ( Expression Language ) • 실습 예제 • initParam사용 <Web-app 초기 설정> 결과

  18. 커스텀태그

  19. 커스텀태그 • 정의 EL 이나 JSP의 표준 액션으로 구현하기 어려운 부분을 해결 하기위해 필요에 의해서 만든 태그를 의미한다. • 종류 • 1. JSTL ( JSP Standard Tag Library ) • 일반적으로 모든 개발자가 가장 필요로 하는 구현내용을 표준 태그로 제공한다. • JSTL 을 사용하기 위해서는 다음과 같은 설정이 필요하다. • JSTL 라이브러리를 다운받아 클래스패스에 설정한다. • JSP 에서 taglib태그로 사용할 라이브러리를 지정해야 한다. • 2. 개발자가 작성한 커스텀태그 • 특정 개발자가 필요에 의해서 작성한 커스텀 태그를 의미한다.

  20. JSTL

  21. JSTL ( JSP Standard Tag Library ) • 정의 • 가장 일반적으로 많이 사용되는 커스텀 태그를 표준화시켜 라이브러리 형태로 제공하는 것을 의미한다. • JCP(Java Community Process, 자바표준화 단체) 에서 정환 표준 / JSP 2.0 에 포함 • 처리 영역 ( 4개의 커스텀 태그 와 문자열을 다루는 함수들) 함수들 지원

  22. JSTL ( JSP Standard Tag Library ) 1. JSTL 설치 인터넷 다운 설치 • Http://jakarta.apache.org/taglib/doc/standard-doc/intro.html에서 jstl.jar, standard.jar 파일 다운 • 다운 받은 파일의 압축을 푼 후, jstl,jar와 standard.jar 파일을 톰캣의lib 또는 프로젝트 lib에 추가할것!

  23. JSTL ( JSP Standard Tag Library ) 2. JSTL 구성 요소 • CORE : 공통 필수 기능 • XML : XML 문서 처리 관련 기능 • I18N : 국제화 지원 관련 기능 • SQL : JDBC를 이용한 DB처리 기능 • JSTL 라이브러리별taglib URI 와 Prefix • 페이지 지시어에서 사용법

  24. JSTL Core Library

  25. JSTL ( JSP Standard Tag Library ) Core 라이브러리 : 수식,제어흐름, URL 처리 등에 관련된 작업

  26. Core 라이브러리 실습 예제 • <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> • <c:out> 화면에 해당 변수 값을 출력한다. • 문법

  27. Core 라이브러리 실습 예제 • <c:out> 실습예제 결과

  28. Core 라이브러리 실습 예제 • <c:set> 변수에 값을 설정! JSP의 setAttribute() 메소드와 같은 역할을 하며 scope에 속성을 설정한다 EL 변수에 값을 설정 객체의 멤버 변수 값 설정 • 문법 • 기본 예

  29. Core 라이브러리 실습 예제 • <c:set> 실습예제 JSP 스크립트릿 에서는 pageContext.getAttribute()를 이용하여 값을 가져올수 있다.. <%=pageContext.getAttribute(“name”)%>

  30. Core 라이브러리 실습 예제 • <c:remove> Scope에 저장된 변수 제거! JSP의 removeAttribute() 메소드와 같은 역할을 하며 scope의 속성값을 제거한다. • 문법 • <c:cathc> 예외처리!! • 바디에서 실행되는 코드의 예외를 잡아냄. • 문법 <c:catch var=“변수명“> nested actions</c:catch>

  31. Core 라이브러리 실습 예제 • <c:if> 조건이 맞는 경우 태그 바디부분 처리! 조건문을 사용할 때 사용한다. 자바의 if와 유사하지만 else 지원하지 않음 (else구현은 <c:choose> 로 사용) • 문법

  32. Core 라이브러리 실습 예제 • <c:if> 실습예제  조건식에서{m.name==null}이 아니면  aaa속성값에 false를 반환한다!!

  33. Core 라이브러리 실습 예제 • <c:choose> , <c:when> , <c:otherwise> 조건이 맞는 경우 처리! 자바의 switch 문과 같다. 조건식에 문자열 사용 가능하다. 하나의 choose 태그에 여러 개의 when 태그가 존재. • 문법

  34. Core 라이브러리 실습 예제 • <c:choose> 실습예제

  35. Core 라이브러리 실습 예제 • <c:choose> 실습예제

  36. Core 라이브러리 실습 예제 • <c:forEach> 반복 실행할 때 사용한다 자바의 반복문과 유사 컬렉션 객체 접근시 매우 유용함. • 문법 • <c:forTokens> 문자열을 토큰들로 잘라 반복 수행 자바의 StringTokenizer클래스 기능을 제공함

  37. Core 라이브러리 실습 예제 • <c:forEach> 실습예제 1 2 3 1 2 3

  38. Core 라이브러리 실습 예제 • <c:import> URL 자원의 내용을 import 내부 자원을 포함할 때 사용된다. HTTP , FTP 같은 외부자원도 포함할 수 있다 • 문법

  39. Core 라이브러리 실습 예제 • <c:import> 실습예제

  40. Core 라이브러리 실습 예제 • <c:url> URL  Rewriting 방식으로 URL 정보를 다룬다 <c:url value="url주소" context="context" var="변수명" scope="scope중 하나"/> • <c:param> import, url,. redirect 태그에서 파라미터 값을 전달 하기 위해 사용한다. <c:param name="name" value="value/> • < c:redirect>  : response,sendRedirect나 <jap:forward> 액션 대신 사용할 수 있다. <c:redirect url="value" context="현재 웹 어플리케이션의 context”>

  41. JSTL I18N Library

  42. 영역 기능 태그 TLD Prefix I18n Locale 지정 setLocalerequestEncoding /jstl-fmt fmt 메시지 bundlemessage  paramsetBundle 숫자/날짜 형식 formatNumberformatDateparseDateparseNumbersetTimeZonetimeZone I18N 라이브러리 • <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %> • I18N Libraby : 로컬과 언어를 지정하기 위한 방법들을 제공 • <fmt:requestEncoding> : Http 요청의 문자 인코딩을 설정하기 위해 사용 • 문법 <fmt:requestEncoding [value=“charsetName”]/>

  43. JSTL SQLLibrary

  44. JSTL ( JSP Standard Tag Library ) SQL 라이브러리 : 데이터베이스 관련 웹 응용프로그램을 개발

  45. SQL라이브러리 • <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql %> • <sql:setDataSource> : JDBC의 데이터 소스를 지정 javax.sql.DataSource를 지정할 때 사용한다. 만약 context에 DataSource가 지정되어있다면 <sql:query> 태그를 사용하여 DataSource를 사용할 수 있다. • 문법

  46. SQL라이브러리 • <sql:query> : 데이터베이스 질의어를실행, 결과는 변수에 저장! 쿼리 문장을 실행할 때 사용한다. executeQuery() 메소드와 동일하다. • 문법

  47. SQL 라이브러리 실습 예제 • <sql:setDataSource>,<sql:query> 실습예제 결과 <sql:query ….. maxRows="1" startRow="1“ />추가시

  48. SQL라이브러리 • <sql:update> : Insert, Update, Delete 문장 수행 쿼리 문장을 실행할 때 사용한다. executeUpdate() 메소드와 동일하다. • 문법

  49. SQL라이브러리 • <sql:dateParam> : SQL 문장의 ? 부분에 날짜 타입의 데이터를 설정 날짜관련 파라미터를 사용할 수 있다. PreparedStatement의 setTimestamp()메소드와 동일하다. • 문법 • <sql:param> : SQL 문장의 ? 부분에 값을 기술하기 위해 사용 문자열 파라미터를 사용할 수 있다. PreparedStatement의 setString() 메소드와동일하다. • 문법

  50. SQL라이브러리 • <sql:transaction>: <sql:query>,<sql:update>를 위한 트랜잭션 설정 트랜잭션을 구현할 때 사용한다. • 문법

More Related