[Servlet / JSP] JSTL(JSP 표준 태그 라이브러리)

suyeon·2022년 7월 6일
0

Servlet / JSP

목록 보기
7/9
post-thumbnail

📌 JSTL(Java Standard Tag Library)

JSP에서 빈번하게 사용되는 조건문, 반복문 등을 처리해주는 태그를 모아 표준으로 만들어 놓은 라이브러리

스크립틀릿(<% %>) 없이 태그만으로 조건문, 반복문 등을 사용할 수 있기 때문에 코드가 간결해지고 읽기 편해짐

모델2 방식의 웹 애플리케이션을 개발할 때 EL과 주로 사용

[예제] JSP로 구현한 구구단

<table border="1">
  <%for (int dan = 2; dan <= 9; dan++) {%>
  <tr>
    <%for (int su = 1; su <= 9; su++) {%>
    <td>
      <%=dan%> * <%=su%> = <%=dan * su%>
    </td>
    <%}%>
  </tr>
  <%}%>
</table>

[예제] JSTL로 구현한 구구단

<table border="1">
  <c:forEach begin="2" end="9" var="dan">
  <tr>
    <c:forEach begin="1" end="9" var="su">
    <td>
      ${dan} * ${su} = ${dan * su}
    </td>
    </c:forEach>
  </tr>
  </c:forEach>
</table>

📌 JSTL 사용 방법

JSTL은 JSP의 기본 태그가 아닌 확장 태그이므로 사용을 위해 별도의 라이브러리 설치가 필요하다.

  1. 접속
  2. jar 클릭해서 jstl-1.2.jar 파일 다운로드
  3. 받은 jar 파일을 webapp/WEB-INF/lib 폴더로 붙여넣기

📌 태그 종류

1. Core 태그

<c:set> 태그

  • EL에서 사용할 변수자바빈즈생성할 때 사용
  • JSP에서 영역에 속성을 저장할 때 사용하는 setAttribute( ) 메서드와 같은 역할
<c:set var="변수명" value="" scope="영역" />
<c:set var="변수명" scope="영역">
	value 속성에 들어갈 값
</c:set>

[ <c:set> 태그의 속성 ]

속성명기능
var변수명을 지정
value변수에 할당할 값
scope변수를 생성할 영역을 지정. page가 기본값
target자바빈즈를 설정
property증가할 값을 지정
varStatus자바빈즈의 속성, 즉 멤버 변수의 값을 지정
  • 자바빈즈나 컬렉션을 생성할 때는 target과 property 속성을 사용
<c:set var="변수명" value="저장할 객체 혹은 컬렉션" scope="영역" />
<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값" />

<c:forEach> 태그

  • 반복문
  • 자바는 두 가지 형태의 for문을 제공
    - 시작과 종료를 지정하는 일반 for문
    - 배열이나 컬렉션을 순회할 때 사용하는 향상된 for문
  • <c:forEach> 태그도 이와 같이 두 가지 형태로 사용 가능

1) 일반 for문

  <c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값" />

2) 향상된 for문

 <c:forEach var="변수명" items="컬렉션 혹은 배열" />

[ <c:forEach> 태그의 속성 ]

속성명기능
var변수명을 지정
items반복을 위한 객체를 지정. 배열, 컬렉션 등을 지정할 수 있음
begin시작값을 지정
end종료값을 지정
step증가할 값을 지정
varStatus루프의 현재 상태를 알려주는 변수의 이름을 지정

[ varStatus 속성을 통해 얻을 수 있는 정보 ]

속성명일반 for문향상된 for문
currentvar에 지정한 현재 루프의 변숫값 반환현재 루프의 실제 요소를 반환
indexvar에 지정한 현재 루프의 변숫값 반환현재 루프의 인덱스를 표시(0~마지막)
count실제 반복 횟수(1~마지막)일반 for문과 동일함
first루프의 처음일 때 true 반환일반 for문과 동일함
last루프의 마지막일 때 true 반환일반 for문과 동일함

<c:if> 태그

  • 자바의 if와 동일하게 제어 구문을 작성할 때 사용
  • else가 별도로 없기 때문에 일련의 여러 조건을 나열하는 형태로 작성은 어려움
  • test 속성의 조건식의 결과가 var 속성에 저장됨
<c:if test="조건" var="변수명" scope="영역">
   조건이 true일 때 출력할 문장
</c:if>

[ <c:if> 태그의 속성 ]

속성명기능
testif문에서 사용할 조건을 지정
var조건의 결과를 저장할 변수명을 지정
scope변수가 저장될 영역을 지정

0개의 댓글