2016. 10. 30. 22:12ㆍProgramming/JSP
JSTL(JSP Standard Tag Library)
: JSP 코드를 더 간결하게 만들어주는 태그의 모음
JSTL은 다섯 개의 라이브러리로 구성됨
lib |
URI (사용할 때마다 페이지 속성에 붙임) |
Prefix |
ex |
Core |
http://java.sun.com/jsp/jstl/core |
c |
<c:tag |
XML Processing |
http://java.sun.com/jsp/jstl/xml |
x |
<x:tag |
I18N formatting |
http://java.sun.com/jsp/jstl/fmt |
fmt |
<fmt:tag |
SQL |
http://java.sun.com/jsp/jstl/sql |
sql |
<sql:tag |
Functions |
http://java.sun.com/jsp/jstl/functions |
fn |
fn:function() |
이 중 Core는 출력, 제어문, 반복문 포함(가장 빈번히 사용됨)
1. 사용 선언은 필수
<%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix="c" %>
2. Core 태그 종류
1) 출력: <c:out>
<c:out value="출력값 default="기본값" escapeXml="true(<>도 출력) or false">
2) 변수 설정: <c:set>
<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위">
의미: 특정 "객체"의 한 "속성"을 "변수"로 지정하고, 거기에 "값"을 넣어 "범위" 내에서 사용가능케
3) 변수 제거: <c:remove>
<c:remove var="변수명" scope="범위">
4) 예외 처리: <c:catch>
<c:catch var="변수명">
5) if문: <c:if>
<c:if test="조건" var="조건 처리 변수명" scope="범위">
6) switch문: <c:choose>
<c:choose>
<c:when test="조건"> 처리 내용 </c:when>
<c:otherwise> 처리 내용 </c:otherwise>
<c:choose>
7) for문: <c:forEach>
<c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수">
8) 페이지 이동: <c:redirect>
<c:redirect url="url">
9) 파라미터 전달: <c:param>
<c:param name="파라미터명" value="값">
<배운 것>
1) 변수 set하고 받아오기
<c:set var="name" scope="session" value="sessionVal"></c:set>
${sessionScope.name}
2) 배열의 경우
3) HashMap의 경우
4) bean의 경우
${mem2.id}
<L01CoreVar.jsp>
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="com.jsp.bean.Member" %> <!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=UTF-8"> <title>Core 태그로 변수 선언</title> </head> <body> <h1>Core 태그로 변수 선언</h1> <h4>먼저 JSTL 사용 선언해야</h4> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <hr> <h2>c:set 변수 선언</h2> <h4>var : 변수 이름</h4> <h4>value : 변수 값</h4> <h4>scope : 변수가 저장될 내장 객체(지정되지 않으면 pageContext에 저장)</h4> <h4>기존 방식 : <%request.setAttribute("pwd", "1234");%></h4> <c:set var="name" scope="page" value="pageVal"></c:set> <c:set var="name" scope="request">requestVal</c:set> <c:set var="name" scope="session" value="sessionVal"></c:set> <c:set var="name" scope="application" value="applicationVal"></c:set> <c:set var="id" scope="session" value="jspLesson"></c:set> <hr> <h4>name : ${name}</h4> <h4>page name : ${pageScope.name} (page->JSTL변수가 기본적으로 이용하는 객체)</h4> <h4>request name : ${requestScope.name}</h4> <h4>session name : ${sessionScope.name}</h4> <h4>application name : ${applicationScope.name}</h4> <h4>id : ${id} (중복되는 이름 없다면 바로 호출 가능!)</h4> <hr> <% Object var="1"; %> <h4>var 등록 전 : ${var}</h4> <c:set var="var" value="<%=var%>"/> <h4>var 등록 후 : ${var}</h4> <%Object nullVar = null;%> <c:set var="nullVar" value="<%=nullVar%>"/> <h4>c:out nullVar : <c:out value="${nullVar}" default="NULL입니다."/></h4> <h4>out은 출력 담당. default 속성 추가하면 null일 때 출력할 문자열 설정 가능</h4> <h4>html 출력 : <c:out value="<br>띄어쓰기" escapeXml="false"></c:out></h4> <h4>escapeXml="true"로 하면 태그를 문자화</h4> <h4>escapeXml="false"로 하면 html태그로 인식</h4> <hr> <h1>배열{사과, 배, 오렌지, 수박, 딸기, 귤}을 등록하자</h1> <%String[] array = {"사과", "배", "오렌지", "수박", "딸기", "귤"};%> <c:set var="array" value="<%=array%>"></c:set> <c:forEach var="i" begin="0" end="5"> <h4>array[${i}] : ${array[i]}</h4> </c:forEach> <h4>array[6] : <c:out value="${array[6]}" default="없는 index"></c:out></h4> <hr> <h1>Collection Framework 등록 후 출력</h1> <% java.util.HashMap map = new java.util.HashMap(); map.put("id", "jspLesson"); map.put("name", "walker"); map.put("pwd", 1234); map.put("admin", '1'); map.put("indate", new java.util.Date()); %> <h3>1. HashMap에 등록 후 출력</h3> <c:set value="<%=map%>" var="map"/> <h4>${map}</h4> <h4>${map.id}, ${map.pwd}</h4> <hr> <h3>EL 태그로 put하기</h3> ${map.put("color","black")} <h4>map.color : ${map.color}</h4> <h3>JSTL로 put하기</h3> <c:set target="${map}" property="favorColor" value="black"/> <h4>map.favorColor : ${map.favorColor}</h4> <hr> <% java.util.List list = new java.util.ArrayList(); list.add(0, "jspLesson"); list.add(1, "ckm"); list.add(2, 1234); list.add(3, '0'); %> <h3>2. ArrayList에 등록 후 출력</h3> <c:set var="list" value="<%=list%>"/> <h4>${list}</h4> ${list.add(4, "EL 태그로 add")} <h4>${list.get(0)}, ${list.get(4)}</h4> <hr> <h1>Bean 값 설정하고 출력</h1> <!-- bean값 설정하기 --> <% com.jsp.bean.Member mem = new com.jsp.bean.Member(); mem.setId("jsp"); mem.setName("박지성"); %> ${mem.setAdmin('0')} <!-- bean값 받아오기 --> <c:set var="mem" value="<%=mem%>"/> <!-- 출력 --> <h4>${mem}</h4> <h4>${mem.id}, ${mem.name}</h4> <jsp:useBean id="mem2" class="com.jsp.bean.Member"/> <jsp:setProperty property="id" name="mem2" value="wetLesson"/> <c:set target="${mem2}" property="name">구지성</c:set> ${mem2.setPwd('6969')} <h4>mem2.id : ${mem2.id}</h4> <h4>mem2.pwd : ${mem2.pwd}</h4> <h4>mem2.name : ${mem2.name}</h4> </body> </html> | cs |
'Programming > JSP' 카테고리의 다른 글
MVC 모델 (0) | 2016.11.07 |
---|---|
[JSP] 가위바위보 게임 (0) | 2016.11.02 |
L09 EL 태그 활용, 내장 객체 종류, 예외처리 (0) | 2016.10.28 |
L08 Bean으로 값(parameter) 전달 (0) | 2016.10.27 |
L07 쿠키로 값 전달 (0) | 2016.10.27 |