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은 JSP의 기본 태그가 아닌 확장 태그이므로 사용을 위해 별도의 라이브러리 설치가 필요하다.
<c:set var="변수명" value="값" scope="영역" />
<c:set var="변수명" scope="영역">
value 속성에 들어갈 값
</c:set>
속성명 | 기능 |
---|---|
var | 변수명을 지정 |
value | 변수에 할당할 값 |
scope | 변수를 생성할 영역을 지정. page가 기본값 |
target | 자바빈즈를 설정 |
property | 증가할 값을 지정 |
varStatus | 자바빈즈의 속성, 즉 멤버 변수의 값을 지정 |
<c:set var="변수명" value="저장할 객체 혹은 컬렉션" scope="영역" />
<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값" />
1) 일반 for문
<c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값" />
2) 향상된 for문
<c:forEach var="변수명" items="컬렉션 혹은 배열" />
속성명 | 기능 |
---|---|
var | 변수명을 지정 |
items | 반복을 위한 객체를 지정. 배열, 컬렉션 등을 지정할 수 있음 |
begin | 시작값을 지정 |
end | 종료값을 지정 |
step | 증가할 값을 지정 |
varStatus | 루프의 현재 상태를 알려주는 변수의 이름을 지정 |
속성명 | 일반 for문 | 향상된 for문 |
---|---|---|
current | var에 지정한 현재 루프의 변숫값 반환 | 현재 루프의 실제 요소를 반환 |
index | var에 지정한 현재 루프의 변숫값 반환 | 현재 루프의 인덱스를 표시(0~마지막) |
count | 실제 반복 횟수(1~마지막) | 일반 for문과 동일함 |
first | 루프의 처음일 때 true 반환 | 일반 for문과 동일함 |
last | 루프의 마지막일 때 true 반환 | 일반 for문과 동일함 |
<c:if test="조건" var="변수명" scope="영역">
조건이 true일 때 출력할 문장
</c:if>
속성명 | 기능 |
---|---|
test | if문에서 사용할 조건을 지정 |
var | 조건의 결과를 저장할 변수명을 지정 |
scope | 변수가 저장될 영역을 지정 |