Itchild 2024. 4. 26. 12:04
728x90
반응형

 

View 페이지는 View 답게 꾸미고 싶다. 근데 JAVA 문법이 섞여 있어서 생각을 한다.

JAVA와 같은 '기능'을 가진 태그가 있었으면 좋겠다....

그래서 탄생한 것이 JSTL이다 !!

자바에서 import문을 선언하듯 JSP에서도 JSTL 확장 태그를 사용하려면 taglib 지시자로 라이브러리를 선언해야 한다.

 

< JSTL >

일반적으로 알고있는 JSTL이란 JSTL + EL의 조합을 말한다.

HTML 코드 내에 java 코드인 스크립틀릿 <%= student %>${student}로, <%=if %>문 ---> <c:if>, <%=for%>문 ---> <c:forEach>로 대체하여 사용한다.

예전에는 스크립틀릿을 많이 사용했지만 가독성이 떨어지고, 뷰와 비즈니스로직의 분리로 인해 현재는 JSTL을 많이 사용하는 추세라고 할 수 있다.

  • JAVA 기능을 구현한 모음집 이다.
  • 조건문, 반복문 등 모음집이라서 .jar 파일이 존재하고 import 도 해줘야 하겠구나 알수 있음

 

JSP 지시어 태그 <%@ taglib %>를 사용해서 다음과 같이 선언한다.

uri : 태그 라이브러리 URI 또는 태그 라이브러리 디스크립터 파일의 URI

prefix : 사용자 정의 태그 접두사(태그를 식별하기 위한 이름)

 

JSTL의 태그에는 여러개 가 있는데

Core tags, Formatting tags, SQL tags, JSTL function, XML tags 이 중, 우리는

가장 흔히 사용하는 Core tags 를 사용할 것이다.

그래서 uri 뒤에 core가 붙고 접두사는 'c' 라고 한다.

 

core 태그 종류에 대해 알아보자

태그
설명
<c:out>
수식의 결과 출력 / <%= %>과 유사하다
<c:remove>
설정한 변수를 제거
<c:catch>
예외처리
<c:if>
조건에 따라 내부 코드 실행(조건문)
<c:choose>
여러 조건 처리시 사용
<c:when>
<c:choose>태그의 하위 태그, 조건에따라 코드 실행
<c:otherwise>
태그의 하위 태그, 조건 만족안할시 실행
(마지막 else 같은 문장에만 쓴다)
<c:forEach>
고정된 횟수 또는 컬렉션, map의 각 항목 처리시 사용하는 반복문
<c:param>
주로<c:url><c:redirect><c:import>와 사용하며 매개변수를 추가한다.

<c:choose> 태그는 <c:when> <c:otherwise> 포함하고 있어서

choose 안에서만 when과 otherwise을 사용할 수 있다.


 

<c:if> 태그

조건문 태그로 else 구문이 따로 없다.(그래서 A == B , A != B 로 나뉜다. )

( null 이라면 empty 와 not empty 로 구분 하기도 한다. )

필수 속성 : test (본문 내용의 실행 여부를 결정하는 조건식)

속성:

- var : 테스트 조건 결과 저장할 변수

- scope : 조건 결과를 저장할 변수의 scope

set 태그는 잘 안쓰인다. 선언 때문에 잠깐 사용
 

 

<c:choose>, <c:when>, <c:otherwise>태그

여러 조건 중 하나의 조건을 선택하여 실행

<c:when> 조건에 만족하는 것이 없으면, <c:otherwise> 태그 내면 본문을 실행한다.

필수 속성 :

- test : true 이면 실행

 

 
마지막 else를 표현할때만 otherwise를 한번 써준다.

 

<c:forEach> 태그

고정된 횟수 또는 컬렉션에 대해 중첩 본문 콘텐츠를 반복하는 데 사용하는 반복 태그

 

자바표현식을 다 ${ } 식으로 바꾸면 된다.

items 를 var v로 받을거야

view에서 사용하는 언어 ${ } --->' EL 식 ' 간단한 연산 정도만 가능

일반적인 for 문

 


catch 태그의 예시

catch 태그도 살짝 보고 가자

 

 

 

728x90
반응형