일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JavaScript
- MySQL
- 갑근세
- oralce
- 블로그 방문자 늘리기
- Jrun
- 블로그 수익화
- CVS
- JSP
- PHP
- CSS
- 소득세
- Jexcel
- 인테리어그림
- Eclipse
- Adobe pdf reader
- 블로그 조회수 늘리기
- Vista
- .NET
- samba
- 에덴미술
- MSSQL
- flash
- HTML
- 즐겨찾기 추가
- 국민연금
- 블로그 조회수
- Administrator
- 블루수국그림
- IIS
- Today
- Total
I LOVE EJ
JSTL 사용법 본문
▩ 표현 언어(Expression Language)
- JSTL1.0규약에 소개되었고 JSP2.0에 새롭게 추가되었습니다. (JSP 2.0은 JSTL 1.1버전에 소개된 내용을 기준으로 제공합니다.)
- 표현식(<%%>)보다 사용법이 간단합니다.
- 실습을 위해서 Tomcat 5.0.X이상, Resin 3.0.X이상 설치 하세요.
- JSP의 4가지 기본 객체가 제공하는 영역의 속성 사용
- 집합 객체 지원, 수치, 관계, 논리 연산 제공, 자바 클래스 메소드 호출 기능 제공, 표현 언어만의 기본 객체 제공
- 표현 방법 ${expr}
- 값이 없는 경우 "null"값을 출력하지 않습니다.
- EL은 모두 11개의 객체를 지원합니다.
- 기본적으로 자바의 문법이 적용됩니다.
- 만약 EL이 인식이 안되면 페이지 상단에 <%@ page isELIgnored="false"%> 를 선언해야 EL을 사용할 수 있습니다.
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
1. EL객체의 사용예
- 실습용 폴더
. D:/tomcat-5.0.19/webapps/ejb1000/el
. D:/tomcat-5.0.19/webapps/ejb1000/WEB-INF
. D:/tomcat-5.0.19/webapps/ejb1000/WEB-INF/classes
- http://127.0.0.1:8081/ejb1000/el/useELObject.jsp
- http://127.0.0.1:8081/ejb1000/el/useELObject.jsp?code=A0001
>>>>> useELObject.jsp
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%
request.setAttribute("name", "왕눈이");
%>
<html>
<head><title>EL Object</title></head>
<body>
요청 URI: ${pageContext.request.requestURI} <br>
request의 name 속성: ${requestScope.name} <br>
code 파라미터: ${param.code} <br>
</body>
</html>
▩ JSTL(JSP Standard TAG Library)의 사용
- JSTL은 계속적으로 사용이 증가되고 있는 추세입니다.
- 많이 사용되는 사용자 정의 태그를 모아서 JSTL이라는 규약이 만들어졌습니다.
- 스크립틀릿, 표현식을 사용하는 것보다 훨씬 간결한 문법 구조를 지원합니다.
- JSTL은 5가지의 태그를 지원합니다.
라이브러리 기능 접두어 관련 URL
-----------------------------------------------------------------------------------------------
Core 변수지원, 흐름 제어, URL 처리 c http://java.sun.com/jsp/jstl/core ★
XML XML 코어, 흐름 제어, XML 변환 x http://java.sun.com/jsp/jstl/xml
국제화 지역, 메시지 형식, 숫자 및 날짜 형식 fmt http://java.sun.com/jsp/jstl/fmt
데이터베이스 SQL sql http://java.sun.com/jsp/jstl/sql
함수 콜렉션 처리, String 처리 fn http://java.sun.com/jsp/jstl/functions ★
1. 설치
- http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html
. Standard Taglib nightly snapshot에서 "jakarta-taglibs-standard-20051220.zip"파일을 다운합니다.
- 압축을 해제한 후 "F:\JAVA\jstl\jakarta-taglibs-standard-20050804\jakarta-taglibs\standard\lib"폴더안에 있는
'jstl.jar', 'standard.jar'파일을 "D:\tomcat-5.0.19\common\lib" 또는 "C:\tomcat-5.0.19\webapps\ejb1830\WEB-INF\lib"폴더로
복사합니다.
. Resin은 'C:\ojt\resin-3.0.14\lib'폴더에 같다 붙입니다.
- 실습용 폴더
. D:/tomcat-5.0.19/webapps/ejb1000/jstl
▩ Core Tag
기능 태그명 기능설명
---------------------------------------------------------------------------
변수 지원 set jsp에서 사용될 변수를 설정합니다.
remove 설정한 변수를 제거합니다.
---------------------------------------------------------------------------
흐름 제어 if 조건에 따라 내부 코드를 수행합니다.
choose 다중 조건을 처리할 때 사용됩니다.
forEach Collection의 각 항목을 처리할 때 사용합니다.
forTokens 구분자로 분리된 각각의 토큰을 처리할 때 사용합니다.
---------------------------------------------------------------------------
URL 처리 import URL을 사용하여 다른 자원의 결과를 삽입합니다.
redirect 지정한 경로로 이동합니다.
url URL을 재 작성합니다.
---------------------------------------------------------------------------
기타 태그 catch 예외 처리에 사용합니다.
out jspWriter에 내용을 알맞게 처리한 후 출력합니다.
---------------------------------------------------------------------------
▩ EL & JSTL의 사용 - Core Tag: 변수 지원 태그의 사용
1. 변수지원 태그, http://127.0.0.1:8081/ejb1000/jstl/setTag.jsp
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="num1" value="${20}" />
<c:set var="num2">
10.5
</c:set>
<%
java.util.Date dt = new java.util.Date();
%>
<c:set var="today" value="<%=dt.toLocaleString()%>" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>set 태그와 remove 태그</title>
</head>
<body>
<H2>
변수 num1 = ${num1} <br>
변수 num2 = ${num2} <br>
num1 + num2 = ${num1 + num2} <br>
오늘은 ${today} 입니다.
<c:remove var="num1" scope="page" />
<p>
삭제한 후의 num1 = ${num1} <br>
삭제한 후의 num1 + num2 = ${num1 + num2}
</H2>
</body>
</html>
2. Map 객체의 사용, http://127.0.0.1:8081/ejb1830/jstl/setTag2.jsp
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="map" value="<%= new java.util.HashMap() %>" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>set 태그와 remove 태그</title>
</head>
<body>
<c:set target="${map}" property="name" value="왕눈이" />
<c:set target="${map}" property="aromi" value="아로미" />
<h2>
변수 map에 저장된 name 값: ${map.name}<br>
변수 map에 저장된 name 값: ${map.aromi}
</h2>
</body>
</html>
▩ EL & JSTL의 사용 - Core Tag: 흐름 제어 태그의 사용
1. if 흐름제어 태그의 사용
- http://127.0.0.1:8081/ejb1830/jstl/ifTag.jsp
- http://127.0.0.1:8081/ejb1830/jstl/ifTag.jsp?name=tree
- http://127.0.0.1:8081/ejb1830/jstl/ifTag.jsp?name=tree&age=25
- test는 변경할 수없습니다.
- 한글은 비교가 안됩니다.
>>>>> ifTag.jsp
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>if 태그</title></head>
<body>
<c:if test="true">
무조건 수행<br>
</c:if>
<c:if test="${param.name == 'tree'}">
name 파라미터의 값이 ${param.name} 입니다.<br>
</c:if>
<c:if test="${18 < param.age}">
당신의 나이는 18세 이상입니다.
</c:if>
</body>
</html>
2. choose Tag
- when tag는 조건이 true이면 실행합니다.
- http://127.0.0.1:8081/ejb1830/jstl/chooseTag.jsp
- http://127.0.0.1:8081/ejb1830/jstl/chooseTag.jsp?name=tree
- http://127.0.0.1:8081/ejb1830/jstl/chooseTag.jsp?age=25
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>choose 태그</title></head>
<body>
<ul>
<c:choose>
<c:when test="${param.name == 'tree'}" >
<li> 당신의 이름은 ${param.name} 입니다.
</c:when>
<c:when test="${param.age > 18}" >
<li> 당신은 18세 이상입니다.
</c:when>
<c:otherwise>
<li> 당신은 'bk'가 아니고 18세 이상이 아닙니다.
</c:otherwise>
</c:choose>
</ul>
</body>
</html>
3. forEach 태그
- Collection, Map에 저장되어 있는 값에 순차적으로 접근시에 사용합니다.
- http://127.0.0.1:8081/ejb1830/jstl/forEachTag.jsp
<%@ page isELIgnored="false" contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
java.util.HashMap mapData = new java.util.HashMap();
mapData.put("name", "아로미");
mapData.put("today", new java.util.Date());
%>
<c:set var="intArray" value="<%= new int[] {1,2,3,4,5} %>" />
<c:set var="map" value="<%= mapData %>" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>forEach 태그</title></head>
<body>
<h4>1부터 100까지 홀수의 합</h4>
<c:set var="sum" value="0" />
<c:forEach var="i" begin="1" end="100" step="2">
<c:set var="sum" value="${sum + i}" />
</c:forEach>
결과 = ${sum}
<h4>구구단: 4단</h4>
<ul>
<c:forEach var="i" begin="1" end="9">
<li>4 * ${i} = ${4 * i}
</c:forEach>
</ul>
<h4>int형 배열</h4>
<c:forEach var="i" items="${intArray}" begin="2" end="4">
[${i}]
</c:forEach>
<h4>Map</h4>
<c:forEach var="i" items="${map}">
${i.key} = ${i.value}<br>
</c:forEach>
</body>
</html>
4. forTokens Tag
- http://127.0.0.1:8081/ejb1830/jstl/forTokensTag.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>forTokens 태그</title></head>
<body>
콤마와 점을 구분자로 사용:<br>
<c:forTokens var="token"
items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색"
delims=",.">
${token}
</c:forTokens>
</body>
</html>
'Web Development > JSP' 카테고리의 다른 글
Redirect 처리 방법(ASP/JSP/PHP) (0) | 2008.06.13 |
---|---|
오늘 날짜 구하기(JAVA & JSP&JAVASCRIPT) (0) | 2008.06.11 |
JSTL 함수 (0) | 2008.04.04 |
JSTL(JSP Tag Library) 개요 (0) | 2008.04.04 |
JSTL 정리문서 (0) | 2008.04.04 |