WEB/JSP

22. JSTL

choi121xx 2013. 4. 23. 23:02
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>


EX1>

<%@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 ="변수명" - 조건처리 결과를 저장.

EX2>
<%@ 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로 원하는 만큼 반복 수행.

EX3>
<%@ 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 } &nbsp;&nbsp;&nbsp;
</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>



<c:forTokens>

; 자바의 for문과 StringTokenizer객체를 결합한형태.
; items에 지정한 값을 delims속성의 구분자로 나눈후 나눠진 만큼 반복을 수행.
items, delims, var 속성만으로도 수행가능.

<c:forTokens items="객체명" delims="구분자" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수">



<c:choose>
; switch문과 비슷.

<c:choose>
<c:when test="조건"></c:when>
<c:otherwise></c:otherwise>
</c:choose>