본문 바로가기
  • 실행력이 모든걸 결정한다
Spring 사전 준비/JSP Servlet

[JSP Servlet] EL / JSTL

by 김코더 김주역 2020. 12. 14.
반응형

1. EL

EL이란 모델 오브젝트를 뷰에서 출력할 때 JSP의 출력 문법을 대체하는 간결한 표현 언어로, 단순히 모델의 내용을 출력할 때 쓰인다. 산술, 관계, 조건, 논리 연산자 모두 사용 가능하다.

 

1) 일반적인 값 출력

JSP 표현식 : <%= 값 %>

EL : ${값}

 

 

2) 모델 오브젝트의 프로퍼티 값 출력

예시

JSP 표현식 : <jsp:getProperty name="member" property="id"/>

EL : ${member.id}

 

 

3) EL의 내장 객체

Scope객체로 page/request/session/application 4가지가 있다.

 

- 주는 쪽 -

application.setAttribute(name,value)

session.setAttribute(name,value)

pageContext.setAttribute(name,value)

request.setAttribute(name,value)

 

- 받는 쪽 -

${applicationScope.name}

${sessionScope.name}

${pageScope.name}

${requestScope.name}

 

 

이 종류들의 차이에 대해서는 아래 링크해둔 포스팅의 javabean 파트에서 언급했다.

kimcoder.tistory.com/195

 

[JSP Servlet] 예외 페이지 / javabean / 데이터베이스(연동)

1. 예외 페이지 보기 좋지 않은 에러 페이지를 대체 하는 페이지 예외 페이지를 설정하는 방법 2가지를 소개한다. 방법 1) page 지시자 예외가 발생할 만한 페이지에 page 지시자를 이용하여 다음과

kimcoder.tistory.com

 

+추가)

param : 요청 parameter을 참조하는 객체, <form> 태그로 전달받은 파라미터.

※ 받는 쪽 : ${param["id"]} or ${param.id}

paramValues : 요청 parameter들을 참조하는 객체(배열)

initParam :  Context 초기 parameter를 참조하는 객체

cookie : cookie 객체를 참조하는 객체

 

 

 

2. JSTL

JavaServer Pages Standard Tag Library, 자바서버 페이지 표준 태그 라이브러리.

Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음이며,

XML 데이터 처리와 조건문, 반복문, 국제화, 지역화 같은 일을 처리할 수 있다.

 

 

1) 설치

설치 주소

tomcat.apache.org/taglibs/standard/

 

Apache Taglibs - Apache Standard Taglib: JSP[tm] Standard Tag Library (JSTL) implementations

 

가장 위에 뜨는 Standard Taglib에서 다운로드를 진행하면 되는데, 본인은 Standard 1.1/ Servlet 2.4 버전으로 진행했다.

 

binaries/ 를 클릭하면

 

 

여러 버전의 jakarta-taglibs-standard zip 파일을 다운받을 수 있는데, 필자는 최신 버전인 1.1.2.zip을 다운 받았다.

 

다운 받고 압축을 풀었다면 lib 폴더에 jstl.jar, standard.jar 파일이 있을 것인데, 이 두 jar 파일을 복사해서

 

 

tomcat 폴더 내의 lib 폴더에 옮겨주면 끝이다.

 

 

 

2) 라이브러리의 종류

 

(1) Core

출력, 제어문, 반복문 등 기능을 포함

URI : http://java.sun.com/jsp/jstl/core

Prefix : c (접두사 c로 시작하는 태그는 해당 URI에서 가져오는 태그임을 명시한다)

사용 : <c:tag

 

선언

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 

태그 종류

생략해도 되는 속성도 있음

<1> 출력 태그 - 반환 o (제거 된 변수라면 반환 x)

<c:out value="값" defalut="기본값" escapeXml="true/false"/>

* escapeXml : 태그를 포함할지 여부를 결정

* ex) value="${변수명}"

 

<2> 변수 설정 태그 - 반환 x

<c:set var="변수명" value="값" target="설정할 객체" property="값" scope="page/request/session/application"/>

 

<3> 변수 제거 태그 - 반환 x

<c:remove var="변수명" scope="page/request/session/application"/>

 

<4> 예외 처리 태그 - 반환 x

<c:catch var="변수명"> 오류 가능성이 있는 코드 </c:catch>

* 에러 문구가 변수에 저장됨

 

<5> 조건 태그 - 반환 x

<c:if test="조건" var="변수명" scope="page/request/session/application">
    조건이 true일 시 처리 or 출력
</c:if>

* 조건의 true/false 값이 var로 지정한 변수에 담기게 된다. ${변수명} -> true/false

* ex) test="${2+3==5}"

 

<6> switch 태그 - 반환 x

<c:choose>
<c:when test="조건"> 처리 </c:when>
<c:otherwise> 처리 /c:otherwise>
</c:choose>

* otherwise는 걸치는 조건이 없을 때를 의미한다 (default)

 

<7> 반복 태그 - 반환 x

<c:forEach item="객체명" begin="index" end="index" step="증감식" var="변수명" varStatus="상태변수">
    처리
</c:forEach>


- 1부터 10까지 출력하기 -
<c:forEach var="i" begin="1" end="10" step="1">
    ${i}
</c:forEach>

* item 객체에는 리스트, 배열이 들어갈 수 있음

* var은 item의 요소들이 순차적으로 할당되는 변수

* 상태 변수는 처리에서 활용할 수 있음

${status.begin} : begin값

${status.end} : end값

${status.step} : step값

${status.index} : 0부터의 순서

${status.count} : 1부터의 순서 

${status.current} : 현재 forEach문의 번호

${status.first} : 첫 루프인지 여부

${status.last} : 마지막 루프 인지 여부

 

<8> 페이지 이동 태그

<c:redirect url="주소">

 

<9> parameter 전달 태그

<c:param name="파라미터명" value="값">

 

 

(2) XML

URL : http://java.sun.com/jsp/jstl/xml

Prefix : x

사용 : <x:tag

 

(3) Formatting

URI : http://java.sun.com/jsp/jstl/fmt

Prefix : fmt

사용 : <fmt:tag

 

(4) SQL

URI : http://java.sun.com/jsp/jstl/sql

Prefix : sql

사용 : <sql:tag

 

(5) Functions

URI : http://java.sun.com/jsp/jstl/functions

Prefix : fn

사용 : fn:function()

 

 

 

 

 

 

반응형

댓글