Home » JSP -10. JSTL

JSP -10. JSTL

10.1. 다운로드 및 사용

10.1.1 JSTL

  • 개발자들이 많이 쓰는 태그 중에서 많이 사용되는 것들을 모아서 만든 것이 JSTL(JSP Standarad Tag Library)이다

10.1.2 예제

  • http://jstl.java.net/에 접속한 뒤 다운로드 페이지로 이동하여, API 와 Implementation 에 들어가서 각각 javax.servlet.jsp.jstl-api-1.2.1.jar와 Javax.servlet.jsp.jstl-1.2.1.jar 를 다운로드 한다.

1) 프로젝트를 생성
– 다운받은 JSTL 관련 JAR 파일을 /WebContent/lib/ 밑에 포함 시킨다.

2) /WebContent/ 밑에 두 개의 jsp 페이지를 생성. 하나는 메인 테스트 페이지가 될 것이고, 하나는 메인 페이지의 import 되는 서브 페이지의 형태로 만들 것이다.

[jstlTest.jsp]

  • 먼저, 하나씩 태그에 대한 설명을 해보자면,
  • 선언된 태그는 변수 값을 설정하거나 객체 멤버 변수 값을 설정할 때 사용하는 태그이다.
  • Value에 들어가는 값은 변수 값이고, var 값은 변수명이다.
  • 변수를 사용할 때에는 표현식(expression language)을 사용한다. 표현식은 ‘${}’이다.

  • 다음으로 변수를 \<ul>태그를 사용해 출력해 보이고 있고 그 다음에는 태그를 사용하여 선언했던 변수를 삭제 할 수 있음을 알 수 있다.

  • 그 밑에 태그는 표현식을 함께 사용하여 조건문을 만들 수 있다.

    • jstl중에 가장 손쉽고, 사용빈도가 많은 태그이다.
  • 다음으로는 , , 태그가 있는데,
    • 이 태그들은 java문법 중 swich ~ case 문과 비슷하다.
  • 태그는 Collection또는 Map에 저장되어 있는 값들을 순차적으로 처리 할 때 유용한 태그이다.
    • 자바의 for, do~ while 등을 대신해서 사용할 수 있다.
  • 위의 예제 에서는 begin, end 속성으로 시작값과 끝값을 정하고, step 속성으로 간격을정해서 시작값에서 끝값까지 간격만큼 증가하도록 하다.

  • 미리 만들어둔 변수에 값을 계속해서 저장하고 나중에 출력하도록 하는 예제이다.

  • 다음에 선언된 태그는 java에서 stringTokenizer 또는 spit 과 같다.

    • Item 속성에 값을 넣고 var에 자른 값을 넣어준다.
    • Delims는 값을 나누고자 하는 기준이다. 예를 들자면 delims=”,” 이면 콤마를 기준으로 값을 나눈다.
  • 태그는 태그와 비슷한 역할을 하는 것으로, url을 지정해 주고, var속성에 지정한 변수명으로 읽어 오는 태그이다.

  • 태그는 URL을 생성해서 변수에 저장할 때 사용한다. 간단히 value 속성에 url을 작성해주면 되고, 사용할 때는 표현식을 사용하면 된다.

  • 마지막으로 태그는 지정한 페이지로 전환 시키고자 할 때 사용한다. Response.sendRedirect() 와 비슷한 기능을 제공한다.

  • 태그에서 사용 되었던 서브 jsp 페이지를 작성.
    [jstlImport.jsp]

.

그림 47. JSTL 출력

10.2. EL 내장객체 및 연산자

10.2.1 EL

  • 표현 언어는 또 다른 형태의 스크립트 언어로서 JSP의 기본문법을 보완하는 역할을 한다.
  • 집합 객체에 대한 접근 방법을 제공하고, 수치, 연산, 관계, 연산, 논리 연산자를 제공하고, 표현 언어만의 기본 객체도 제공한다.
  • 기본적인 식은 ‘${}’ 으로 쓴다.

10.2.2 EL


기본객체, 설명
pageContext, JSP의 Page 기본 객체와 동일하다
pageScope, pageContext 기본 객체에 저장된 속성의 <속성\, 값> 매핑을 저장한 Map 객체
requestScope, request기본 객체에 저장된 속성의 <속성\, 값>매핑을 저장한 Map 객체
sessionScope, Session 기본 객체에 저장된 속성의 <속성\, 값>매핑을 저장한 객체
applicationScope, Application 기본 객체에 저장된 속성의 <속성\, 값> 매핑을 저장한 Map 객체
Param, 요청 파라미터의 <파라미터이름\,값>매핑을 저장한 Map 객체 ~~타입은 Strign(request.getParameter(이름)의 결과와 동일)
paramValues, 요청 파라미터의 <파라미터이름\,값 배열>매핑을 저장한 Map 객체 ~~타입은 String[] (request.getParameterValues(이름)결과와 동일)
Header, 요청 정보의 <헤더이름\, 값>매핑을 저장한 Map 객체(request.getHeader(이름)결과와 동일)
headerValues, 요청 정보의 <헤더이름\, 값 배열>매핑을 저장한 Map 객체(request.getHeader(이름)의 결과와 동일)
Cookie, <쿠키이름\, Cookie>매핑을 저장한 Map객체(request.getCookies()로 구한 Cookie배열로부터 매핑을 생성)
initParam, 초기화 파라미터의 <이름\, 값>매핑을 저장한 Map객체(application.getIntParameter(이름)의 결과와 동일)

10.2.3 예제

1) 사용자의 입력을 받을 폼 페이지 작성
[elForm.jsp]

2) web.xml에 파라미터 작성
[web.xml]

3) elForm.jsp 작성
[elForm.jsp]

그림 48. EL 출력 1


그림 49. EL 출력 2