JSTL (JavaServer Pages Standard Tag Library)
- 제어문이나 반복문과 같이 식(expression)이 아닌 문(statement)를 처리하기 위해서는 JSTL 라이브러리가 필요
- JSTL
: Java 코드를 바로 사용하지 않고 HTML 태그(<>) 형태로 직관적인 코딩을 지원하는 라이브러리
- JSTL 설치
구글에서 'maven repository' 검색 - JSTL 검색 - 2.JSTL 클릭
JSTL 1.2버전 클릭
jar파일 다운로드
다운로드한 파일을 WEB-INF 폴더 내 lib폴더로 drag해서 옮기기 - OK 클릭
다음과 같이 확인 가능
그럼 webapp 폴더에 jstl_exam.jsp 파일을 생성해 테스트해보자.
- taglib 지시어를 이용해 JSTL Core 태그 선언문 작성
· taglib 지시어 : JSP 페이지에서 표현 언어(EL : Expression Language), JSTL(JSP Standard Tag Library), 커스텀 태그(Custom Tag)와 같은 태그 라이브러리를 사용할때 설정하는 태그
❶ uri 속성 : JSP 컨테이너에게 사용자가 정의한 태그 라이브러리의 위치를 알려주는 역할
* Shift + spacebar : 등록된 JSPL이 나와서 선택하면 됨
❷ prefix 속성 : 사용자가 정의한 태그 라이브러리의 접두어 태그가 무엇인지 JSP 컨테이너에게 알려주는 역할로, 태그 식별자
⇒ 이 선언이 있어야 JSP에서 JSTL을 이용할 수 있으므로 주의!
테스트 하기 전, JSP의 유효 범위와 속성에 대해 알아보자.
영역 | 속성의 유효 범위 |
page | 해당 페이지가 클라이언트에 서비스를 제공하는 동안에만 유효 |
request | 클라이언트의 요청이 처리되는 동안 유효 → RequestDispatcher, response 객체의 forward 범위 내에서 유효함 Page와 Page 사이의 변수 공유 가능 |
session | 세션이 유지되는 동안 유효 즉, 세션이 무효화될 때까지 소멸되지 않음 |
application | 서블릿 컨테이너가 실행중인 동안( = tomcat이 작동 중인 동안) 유효 |
scope의 비교 : page < request < session < application |
JSTL 태그 종류 및 사용 예
① 화면에 출력
<c:out value="출력 값" default="value가 null일 경우, 설정한 default값 출력" />
② 변수 설정
<c:set var="변수명" value="설정 값" scope="변수의 유효범위" />
- 변수의 유효범위를 설정하지 않을 경우, 'page' 범위로 기본 설정됨
cf ) JSP EL 표현식인 ${ price } 를 입력해도 위와 동일한 값 출력
③ 위에서 설정한 변수 삭제
<c:remove var="변수명" />
→ 삭제가 되었으므로 출력되지 않음
④ 예외 처리 : 자바의 try-catch 구문과 동일함
<c:catch var="e"> : 예외 발생 시, catch해서 변수 e에 저장
➊ e == null : 예외 발생 안함 ❷ e != null : 예외 발생함
예외가 발생할 수 있는 부분
</c:catch>
<c:if test="${ e != null }">
에러메시지 : ${ e.message }
</c:if>
⑤ 조건문
<c:if test="조건식" >
조건식이 true일 경우, 출력할 내용
</c:if>
→ test 속성 내의 EL의 결과가 참인 경우, true가 출력됨
따로 else 구문은 없음
❶ test : 필수 속성, 속성값으로 EL 비교식을 가짐
❷ var : 조건 결과를 저장할 변수 지정
❸ scope : 조건 결과를 저장할 변수의 저장 scope 지정
→ 조건식 결과 <c:out>태그를 이용해 조건 결과를 저장한 변수를 출력함 그 결과, true 또는 false 출력
⑥ <c:choose> : 자바의 switch 구문과 비슷한 역할
- 조건에 따라 여러 곳으로 분기 가능, 조건이 맞은 경우가 없을 때는 <c:otherwise> 로 분기됨
→ 'if ~ else if ~ else' 의 처리가 가능
<c:choose>
<c:when test="조건식">
조건식이 참인 경우, 출력할 내용
</c:when>
<c:otherwise>
조건이 맞는 경우가 없는 경우, 출력할 내용
</c:otherwise>
</c:choose>
'백엔드 > JSP' 카테고리의 다른 글
JSP : EL (0) | 2023.06.20 |
---|---|
웹 프로그래밍의 시작 (3) (0) | 2023.06.18 |
웹 프로그래밍의 시작 (2) (0) | 2023.06.16 |
웹 프로그래밍의 시작 (1) (0) | 2023.06.14 |
JSP Servlet 기초 (8) : Session (0) | 2023.06.13 |