JSTL 라이브러리 다운 >>
1. http://http://jstl.java.net/ 접속
2. download JSTL
3. JSTL api
- javax.servlet.jsp.jstl-1.2.1.jar 다운
- javax.servlet.jsp.jstl-api-1.2.1.jar 다운
4. WEB-INF/lib 밑에 복사 하고 사용.
스크립트 위에 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 해준다.
lib밑에 복사가 안되어 있으면 위의 태그 자동생성 안된다.
출력 태그: <c:out>
변수설정 및 삭제 태그 : <c:set> <c:remove>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- 변수선언 -->
<c:set var="name" value="홍길동"/>
<!-- jstl로 선언된 변수는 el로만 출력가능하다. -->
이름:${name }<br/>
<!-- 변수수정하기 -->
<c:set var="name" value="김길동"/>
수정된이름:${name }<br/>
<!-- 변수삭제하기 -->
<c:remove var="name"/>
삭제후:${name }<br/>
<%
String id="abcd";
%>
<c:set var="id" value="<%=id %>"/>
id : ${id }
<c:set var="today" value="<%=new Date() %>"/>
today: ${today }
</body>
</html>
<c:if test="{조건식}" var ="변수명" scope="범위">
; var ="변수명" - 조건처리 결과를 저장.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%--
[ if문 형식 ]
<c:if test="{조건식}">
실행문장;
...
</c:if>
--%>
<%
String id="admin";
request.setAttribute("id", id);
%>
<c:if test="${ requestScope.id=='admin' }">
관리자로 로그인하셨습니다.<br/>
</c:if>
<!-- if elseif에 해당하는 choose사용하기 -->
<c:choose>
<c:when test="${ id=='admin' }">
당신은 관리자로 로그인했습니다.<br/>
</c:when>
<c:when test="${ id=='user' }">
당신은 일반사용자로 로그인했습니다.<br/>
</c:when>
<c:otherwise><!-- 조건이 맞지 않을때 수행 -->
당신은 손님으로 로그인했습니다.<br/>
</c:otherwise>
</c:choose>
</body>
</html>
<c:forEach>
;
<c:forEach items="객체명" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수">
; items에 collection이나 배열형태의 객체 지정하여 객체의 index만큼 반복 가능.
; begin,end로 원하는 만큼 반복 수행.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="i" begin="1" end="100" step="2">
${ i }
</c:forEach>
<br/>
<!-- 1~100합 -->
<c:forEach var="i" begin="1" end="100" >
<c:set var="sum" value="${ sum+i }"/>
</c:forEach>
1부터 100까지 합: ${ sum }<br/>
</body>
</html>
; 자바의 for문과 StringTokenizer객체를 결합한형태.
; items에 지정한 값을 delims속성의 구분자로 나눈후 나눠진 만큼 반복을 수행.
; items, delims, var 속성만으로도 수행가능.
<c:forTokens items="객체명" delims="구분자" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수">
<c:choose>
<c:when test="조건"></c:when>
<c:otherwise></c:otherwise>
</c:choose>