Servlet, JSP

JSTL

chojdsj 2023. 7. 9. 23:47
728x90

 

JSTL

 

- JSTL(Jsp Standard Tag Library) : JSP에서 자주 사용되거나 공통적으로 사용되는 Java 코드를 쉽고, 표기법을 간단히 할수 있도록 태그화(Tag Library)하여 표준으로 제공함 (if, for, scope 변수선언, 데이터 파싱 등)

 

- 라이브러리 등록 방법 

 

1)  https://tomcat.apache.org/download-taglibs.cgi 접속

 

2) jar files -> impl, EL, Spec 다운로드

 

3) WEB-INF/lib 폴더에 추가

 

 

 

 

JSTL 사용을 위한 선언 방법

 

- JSTL을 사용하고자 하는 JSP가 있을 경우 해당 JSP 최상단에 JSTL 라이브러리를 추가하는 지시자 taglib을 작성해야 한다.

 

- prefix : 접두사. 다른 태그와 구별할 수 있는 namespace (태그 앞에 붙는 태그명)

 

- url(Uniform Resource Locator) : 인터넷에서 특정 자원 위치 지정(주소)

- uri(Unifrom Resource Identifier) : 네트워크 상에서 자원을 구별하는 식별자 (자원을 구별하는 유일한주소)

 

-> uri에 작성하는 주소는 네트워크 상의 주소가 아닌 다운로드 받은 라이브러리 내부 구분 주소

 

 

 

변수 선언 (c : set)

 

- 변수를 선언하고 값을 초기화하는 태그(초기화는 무조건 수행)

 

- c:set 태그로 선언된 변수는 EL을 이용해서 출력할 수 있다.

 

- 특징

 

1) 변수 타입을 지정하지 않음

2) 변수의 범위(scope)를 지정할 수 있음

-> c:set은 내장객체에 속성을 추가하는 태그 (page, request, session, application)

 

- c:set 태그 속성

 

1) var : 변수명

2) value : 대입될 값

3) scope : 변수 범위(기본값 : page)

 

-> scope 미지정 시 좁은 범위부터 탐색(우선순위)

 

 

 

변수 삭제(c:remove)

 

- 지정한 변수( c:set / setAttribute( ) 추가된 변수) 삭제

 

- scope 선택 가능

 

- scope 미작성 시 모든 scope에서 일치하는 변수명 모두 제거 

 

- c:remove 속성

 

1) var : 삭제할 변수명

2) scope : 삭제할 범위 (기본값 모든 범위)

 

 

 

 

 

 

 

조건문 if ( c:if 태그)

 

- 조건문을 작성할 수 있는 태그

 

- if문만 가능하고 else는 불가능 (c:else는 존재하지 않음)

 

- c:if 속성

 

test : 조건을 작성하는 속성. 단, EL로만 작성할 수 있다.

 

-> test 안에 조건식은 EL로 작성

 

조건문 - if ~ else if ~ else (c:choose, c:when, c:otherwise)

 

- c:choose 내부에 c:when( if / else if ) , c:otherwise (else) 태그를 작성하는 형태

 

 

 

 

 

c:forEach 태그

 

- Java의 for문 + 추가 기능을 가지고 있는 태그

 

- 속성

 

var : 현재 반복 횟수에 해당하는 변수 ( == int i )

 

begin : 반복 시작 값 

 

end : 반복 종료 값

 

step : 반복 시 마다 증가할 값(증감식), 미작성 시 기본값 1

 

items : 반복 접근할 객체명(Collection 객체) // 향상된 for문

 

varStatus : 현재 반복에 해당되는 정보

 - 제공되는 값 

1)current : 현재 반복 횟수 또는 현재 접근중인 객체

2) index : 현재 객체가 몇번째 인덱스인지 반환(0부터 시작)

3) count : 현재 반복문이 몇바퀴 반복중인지 반환(1부터 시작)

4) first : 첫 번째 반복일 경우 true 반환

5) last : 마지막 반복일 경우 true 반환

 

 

-> == for(int i = 1; i<=6; i++)

 

 

 

** EL로 파라미터 얻어오는 방법 **

 

1) ${ param.name의 속성값 }

-> 단일 파라미터를 얻어와 출력하는 용도

-> 복수 파라미터에 사용하는 경우 맨 앞(0번 인덱스)값만 얻어옴

 

2) ${ paramValues.name의 속성값[인덱스] }

-> 복수 파라미터에 사용하며 뒤에 인덱스 번호를 붙여서 그 인덱스 값의 값을 가져옴

 

 

-> name 속성값이 lang인 값들이 item에 담겨져있고 향상된 for문과 같이 하나씩 하나씩 str변수에 담긴다

 

-> vs는 현재 반복에 해당되는 값을 뜻한다

 

-> name이 lang인 체크박스들이다

-> 이렇게 체크하고 제출을 누르면

-> items에 담겨지는 값들 : java, jdbc, html, javascript

 

-> ${str} == java / ${vs.index} == 0 / ${vs.count} == 1 / ${vs.current} == java

-> test 조건식에서 vs.first == 첫번째 반복일 경우 true반환

     java가 첫번째 반복이므로 "첫 번째" 출력. last는 마지막 반복에 "마지막" 출력.

 

 

'Servlet, JSP' 카테고리의 다른 글

JSON  (0) 2023.07.15
AJAX  (0) 2023.07.15
EL  (0) 2023.07.09
JSP  (0) 2023.07.08
Servlet  (0) 2023.07.03