본문 바로가기
boostcource/boostcourse_web programming

JSTL

by sgyeong 2024. 4. 21.

JSTL

 

JSP는 스크립트릿의 Java코드와 HTML 코드가 섞여있는 형태로 사용하도록 개발이 되었다. 개발의 편의성은 높지만, HTML코드와 Java코드가 섞여 있어서 front-end 개발자가 해당 코드를 수정하기 어렵고 유지보수가 어렵다는 문제가 있다. 이런 문제를 해결하기 위해 등장한 것이 JSTL이다.

 

JSTL은 JSP페이지에서 조건문 처리, 반복문 처리 등을 html 태그 형태로 작성할 수 있게 도와준다. JSTL을 사용함으로써 Java 코드를 없애고 태그 형태로 표현할 수 있다.

 

JSTL을 사용하려면

http://tomcat.apache.org/download-taglibs.cgi

해당 사이트에서 3가지 jar파일을 다운로드 한 후 WEB-INF/lib/ 폴더에 복사를 한다. 

 

 

 

JSTL이 제공하는 태그의 종류

라이브러리 하위 기능 접두어 관련 URI
코어 변수 지원
흐름 제어
URL 처리
c http://java.sun.com/jsp/jstl/core
XML XML 코어
흐름 제어
XML 변환
x http://java.sun.com/jsp/jstl/xml
국제화 지역
메시지 형식
숫자 및 날짜 형식
fmt http://java.sun.com/jsp/jstl/fmt
데이터베이스 SQL sql http://java.sun.com/jsp/jstl/sql
함수 콜렉션 처리
String 처리
fn http://java.sun.com/jsp/jstl/functions

 

 

 

코어 태그

기능 분류 태그 설명
변수 지원 set JSP에서 사용될 변수를 설정한다.
remove 설정한 변수를 제거한다.
흐름 제어 if 조건에 따라 내부 코드를 수행한다.
choose 다중 조건을 처리할 때 사용한다.
forEach 콜렉션이나 Map의 각 항목을 처리할 때 사용한다.
forTokens 구분자로 분리된 각각의 토큰을 처리할 때 사용된다.
URL처리 import URL을 사용하여 다른 자원의 결과를 삽입한다.
redirect 지정한 경로로 리다이렉트한다.
url URL을 재작성한다.
기타 태그 catch 예외 처리에 사용된다.
out JspWriter에 내용을 알맞게 처리한 후 출력한다.

 

 

 

코어 태그 : 변수 지원 태그 - set, remove


JSTL이 제공하는 set 태그는 JSP의 네 가지 scope에 값을 저장할 수 있다. 
저장된 값은 remove 태그를 이용해서 삭제할 수 있다.

 

 

 

먼저 위에서 다운로드 한 3가지 jar파일을 라이브러리에 추가한다.

그리고 태그 라이브러리 지시자에 이렇게 써준다.

실제 태그를 사용하는데 태그들이 중복될 수도 있다. JSTL은 커스텀 태그로 만들어서 사용할 수도 있다. 태그를 만들 때 태그가 누가 만든건지 알 수 없기 때문에 prefix를 지정해서 사용할 때 쓸 수 있게 도와준다. 

 

이렇게 했다면 JSTL을 사용할 준비를 마쳤다. 

 

 

 

변수 설정 : 지정한 영역에 변수를 생성한다.

 

var : EL에서 사용하게 될 변수명이다.

scope : 변수 값이 저장될 영역이다(page, request, session, application). 어떻게 지정하느냐에 따라 해당 scope객체에 값이 저장된다.

value : 변수 값이다.

 

변수 제거

 

 

 

먼저 request scope에 값을 저장해준다. 

 

 

 

처음에는 값을 그냥 출력해보고, 

다음에는 remove 태그를 이용해 지운 다음 출력해본다.

 

 

 

실행 결과

첫 번째 결과는 hong이라는 값을 가져오고,

두 번째 결과는 remove를 수행해서 값이 지워졌기 때문에 아무것도 가져오지 않는다.

 

 

 

 

 

 

 

 

참고  :   boostcourse  https://www.boostcourse.org/web316/lecture/254291?isDesc=false

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

'boostcource > boostcourse_web programming' 카테고리의 다른 글

JSTL -3  (0) 2024.04.21
JSTL -2  (0) 2024.04.21
EL(Expression Language) -3  (0) 2024.04.20
EL (Expression Language) -2  (0) 2024.04.20
EL (Expression Language)  (1) 2024.04.20