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 |