1. 코어 태그
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- if-else 또는 변수 지정 같은 논리적인 처리를 위해 사용되는 스크립트 코드를 대체하기 위한 태그를 제공한다.
기능분류 | 태그 | 설명 |
변수 지원 | set | JSP에서 사용될 변수를 설정한다. |
remove | 설정한 변수를 제거한다. | |
흐름 제어 | if | 조건에 따라 내부 코드를 수행한다. |
choose | 다중 조건을 처리할 때 사용한다. | |
forEach | 컬렉션이나 Map의 각 항목을 처리할 때 사용한다. | |
forTokens | 구분자로 분리된 각각의 토큰을 처리할 때 사용한다. | |
URL 처리 | import | URL을 사용하여 다른 자원의 결과를 삽입한다. |
redirect | 지정한 경로로 리다이렉트 한다. | |
url | URL을 재작성 한다. | |
기타 태그 | catch | 익셉션 처리에 사용된다. |
out | JspWriter에 내용을 알맞게 처리한 후 출력한다. |
1.1. 변수 지원 태그
- JSTL이 지원하는 태그에서 사용할 수 있는 변수를 설정하기 위해 사용한다.
1.1.1 <c:set> 태그
- 첫 번째 사용방법 EL 변수생성에 사용된다.
- <c:set var="변수명" value="값" [scope="영역"] />
- <c:set var="변수명" [scope="영역"]>값</c:set>
- var : 값을 지정할 EL 변수의 이름
- value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용하여 값을 지정할 수 있다.
- scope : 변수를 저장할 영역을 지정한다. (page, request, session, applicaion 기본값은 page)
<!-- value 속성 사용 --> <c:set var="name" value="Gz" scope="page" /> <c:set var="name" value="<%=m.getName() %>" scope="request" /> <c:set var="name" value="${ m.Name } ${ m.Age }" scope="request" /> <!-- 태그의 몸체를 값으로 사용 --> <c:set var="name">Gz</c:set> <c:set var="name"><%= m.getName() %> <%= m.getAge() %></c:set> <c:set var="name">${ m.Name } ${ m.Age }</c:set>
- 두 번째 사용방법 객체의 프로퍼티 값을 설정할 때 사용된다.
- <c:set target="대상" property="프로퍼티이름" value="값" />
- <c:set target="대상" property="프로퍼티이름">값</c:set>
- target : 프로퍼티의 값을 설정할 대상 객체, 표현식이나 EL변수를 지정한다. (자바빈 객체나 Map)
- property : 설정할 프로퍼티 이름, target이 자바빈 객체인 경우 프로퍼티 이름에 해당하는 set 메서드를 제공해주어야 한다. Map인 경우 Map.put(프로퍼티이름, 값)
- value : 설장할 프로퍼티의 값
<% Member member = new Member(); %> <c:set target="<%= member %>" property="name" value="갱짱" /><!-- member.setName("갱짱")과 동일 --> <%= member.getName() %> <c:set var="m" value="<%= member %>" /> <c:set target="${ m }" property="name" value="갱짱" /><!-- member.setName("갱짱")과 동일 --> ${m.name} <% Map<String, String> memberMap = new HashMap<String, String>(); %> <c:set target="<%= memberMap %>" property="갱짱" value="01012345678" /><!-- memberMap.put("갱짱", "01012345678")과 동일 --> <%= memberMap.get("갱짱") %>
- 세 번째 사용방법 #{식} 형식의 Deferred Expression을 값으로 설정할때 사용된다.
- <c:set var="이름" value="#{식}" />
- var : 값을 지정할 EL 변수의 이름
- value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용하여 값을 지정할 수 있다.
<!-- c_set_DeferredExpression.jsp --> <%@page import="java.util.HashMap"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% HashMap pref = new HashMap(); %> <!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>c:set Deferred Expression</title> </head> <body> <c:set var="pref" value="<%= pref %>" /> <c:set var="favorColor" value="#{ pref.color }"/> 좋아하는 색 : ${ favorColor } <br> <br> <c:set target="${ pref }" property="color" value="red" /> 설정 이후 좋아하는 색 : ${ favorColor } </body> </html> <!-- 실행결과 좋아하는 색 : 설정 이후 좋아하는 색 : red -->
1.1.2. <c:remove> 태그
- set 태그로 지정한 변수를 삭제할 때 사용된다.
- <c:remove var="var명" scope="영역" />
- var속성과 scope속성은 set 속성과 동일한 의미를 갖는다.
- scope 영역을 지정하지 않으면 동일한 이름의 변수를 모두 삭제된다.
1.2. 흐름 제어 태그
- JSTL 태그를 사용하여 흐름을 제어 처리한다.
1.2.1. <c:if> 태그
- 자바에서의 if 문과 비슷한 기능을 제공한다.
- <c:if test="조건"> . . . </c:if>
- test 속성에는 true나 false를 리턴하는 조건문이 오고 true일 경우 <c:if>태그의 몸체 내용이 처리된다. true 또는 false 그리고 EL 또는 정적 문자열을 가질 수 있다.
- <c:if test="조건" var="결과를 저장할 변수명" />
- var 속성에 지정한 변수에 test 속성에 계산 결과를 저장할 수 있다.
<!-- c_if.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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=UTF-8"> <title>c:if</title> </head> <body> <c:if test="true"> 항상 실행된다.<br> </c:if> <c:if test="false"> 항상 실행되지않는다.<br> </c:if> <c:if test="ture 나 false 값이 아닌 텍스트"> 항상 실행되지않는다.<br> </c:if> <c:if test="${ param.name == 'bk' }"> EL 결과 값이 true 일 때 실행된다.<br> name 파라미터의 값 : ${ param.name}<br> </c:if> <% Boolean flag = true; %> <c:if test="<%= flag %>"> 표현식 결과값이 true 인 경우 실행된다.<br> </c:if> </body> </html> <!-- 실행결과 항상 실행된다. 표현식 결과값이 true 인 경우 실행된다. --> <!-- 파라미터 값 추가 /c_if.jsp?name=bk 실행결과 항상 실행된다. EL 결과 값이 true 일 때 실행된다. name 파라미터의 값 : bk 표현식 결과값이 true 인 경우 실행된다. -->
1.2.2. <c:choose>, <c:when>, <c:otherwise> 태그
- 자바에서의 switch 구문과 if - else 블록을 혼합한 형태이다.
-
<c:choose>
<c:when test="조건1">
. . .
</c:when>
<c:when test="조건2">
. . .
</c:when>
<c:when test="조건3">
. . .
</c:when>
<c:otherwise>
. . .
</c:otherwise>
</c:choose>
- <c:when> 태그의 test 속성의 결과값이 true인 첫번째 태그의 내부 블럭을 수행하고 그 이후의 <c:when> 태그는 실행되지 않는다.
- <c:when> 태그의 test 결과 값이 false면 <c:otherwise> 태그가 실행된다. <c:otherwise> 태그는 필수는 아니다.
<!-- c_choose.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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=UTF-8"> <title>c:choose</title> </head> <body> <ul> <c:choose> <c:when test="${ param.flag == 0 }"> <li>파라미터 flag 의 값은 0 입니다. </c:when> <c:when test="${ param.flag == 1 }"> <li>파라미터 flag 의 값은 1 입니다. </c:when> <c:when test="${ param.flag == 2 }"> <li>파라미터 flag 의 값은 2 입니다. </c:when> <c:otherwise> <li>파라미터 flag 의 값은 0,1,2 중에 하나를 입력해주세요. </c:otherwise> </c:choose> </ul> </body> </html> <!-- /c_choose.jsp?flag=0 실행결과 파라미터 flag 의 값은 0 입니다. --> <!-- /c_choose.jsp?flag=1 실행결과 파라미터 flag 의 값은 1 입니다. --> <!-- /c_choose.jsp?flag=2 실행결과 파라미터 flag 의 값은 2 입니다. --> <!-- /c_choose.jsp 실행결과 or 그 외에 flag 값 실행결과 파라미터 flag 의 값은 0,1,2 중에 하나를 입력해주세요. -->
1.2.3. <c:forEach> 태그
- 자바의 for, do-while 형태이다.
- array, Collection, Map 에 저장되어 있는 값들을 순차적으로 처리할 때 사용할 수 있는 태그이다.
- <c:forEach var="변수" items="아이템" begin="시작값" end="끝값" step="증가값"> ${ 변수 } </c:forEach>
- item : array, Collection, Map 등이 올수 있다.
- begin : 초기값
- end : 끝값
- step : 증가값
- 단, Iterator, Enumeration, Map의 경우 삽입한 순서와 읽어오는 순서가 일치하지 않을 수 있기 때문에 begin, step, end 속성은 잘 쓰지 않는다.
- varstatus : 루프 정보를 담는 LoopTagStatus 객체를 저장할 변수명을 값으로 갖는다.
- index : 루프 실행에서 현재 인덱스
- count : 루프 실행 회수
- begin : begin 속성 값
- end : end 속성 값
- step : step 속성 값
- first : 현재 실행이 첫 번째 실행인 경우 true
- last : 현재 실행이 루프의 마지막 실행인 경우 true
- current : 컬렉션 중 현재 루프에서 사용할 객체
<!-- c.forEach.jsp --> <%@page import="java.util.HashMap"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String[] sports = { "축구", "야구", "농구", "골프", "수영", "볼링"}; HashMap map = new HashMap(); map.put("name", "Gz"); map.put("age", "25"); map.put("tel", "010-1234-5678"); map.put("date", new java.util.Date()); %> <!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>Ic:forEach</title> </head> <body> <h1>1부터 100까지의 홀수의 합 : <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 }</h1> <hr><!-- ------------------------------------------------ --> <h1>구구단</h1> <c:forEach var="i" begin="1" end="9"> <c:forEach var="j" begin="1" end="9"> ${ i } * ${ j } = ${ i * j }<br> </c:forEach> <br> </c:forEach> <hr><!-- ------------------------------------------------ --> <h1>스포츠 배열 2번째 값부터 3개만 출력</h1> <c:set var="sportsArray" value="<%= sports %>" /> <c:forEach var="i" items="${ sportsArray }" begin="1" end="3" step="1" varStatus="status"> i 값 : ${ i }<br> 루프 실행 현재 인덱스 값 : ${ status.index }<br> 루프 실행 횟수 : ${ status.count }<br> begin 값 : ${ status.begin }<br> end 값 : ${ status.end }<br> step 값 : ${ status.step }<br> <br> </c:forEach> <hr><!-- ------------------------------------------------ --> <h1>Map</h1> <c:set var="memberMap" value="<%= map %>" /> <c:forEach var="i" items="${ memberMap }"> ${ i.key } : ${ i.value }<br> </c:forEach> </body> </html> <!-- 실행결과 1부터 100까지의 홀수의 합 : 2500 --------------------------------------------------------- 구구단 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 . . . 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 --------------------------------------------------------- 스포츠 배열 2번째 값부터 3개만 출력 i 값 : 야구 루프 실행 현재 인덱스 값 : 1 루프 실행 횟수 : 1 begin 값 : 1 end 값 : 3 step 값 : 1 i 값 : 농구 루프 실행 현재 인덱스 값 : 2 루프 실행 횟수 : 2 begin 값 : 1 end 값 : 3 step 값 : 1 i 값 : 골프 루프 실행 현재 인덱스 값 : 3 루프 실행 횟수 : 3 begin 값 : 1 end 값 : 3 step 값 : 1 --------------------------------------------------------- Map tel : 010-1234-5678 age : 25 name : Gz date : Wed Sep 25 17:10:45 KST 2013 -->
1.2.4. <c:forTokens> 태그
- 자바의 Tokenizer와 같은 기능을 제공하는 태그이다.
- <c:forTokens var="token" items="문자열" delims="구분자"> ${ token } </c:forTokens>
- item 속성으로 전달받은 문자열을 delims에 구분자를 이용해서 나눈뒤 var 변수에 저장한다.
<!-- c_forTokens.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String text = "축구,야구,농구,배구,골프,수영"; %> <!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>c:forTokens</title> </head> <body> <c:set var="text" value="<%= text %>"/> <c:forTokens var="sports" items="${ text }" delims=","> ${ sports } </c:forTokens> <hr><!-- ---------------------------------------------------- --> <c:forTokens var="fruit" items="토마토^귤^포도^오렌지^복숭아" delims="^"> ${ fruit } </c:forTokens> </body> </html> <!-- 실행결과 축구 야구 농구 배구 골프 수영 -------------------------------------------- 토마토 귤 포도 오렌지 복숭아 -->
1.3. URL 처리 태그
- 내부/외부 자원의 삽입(<c:import>), URL 생성(<c:url>), 리다이렉트 처리(<c:redirect>) 세가지 기능을 제공한다.
1.3.1. <c:import> 태그
- 특정 URL의 결과를 읽어와 현재 위치에 삽입하거나 EL 변수에 저장할때 사용한다.
- 동일한 웹 어플리케이션 뿐만 아니라 외부의 다른 자원을 읽어와 포함시킨다.
- <c:import url="URL" var="변수명" scope="영역" charEncoding="캐릭터셋"></c:import>
- var 속성을 명시하면 해당 URL에서 읽어온 데이터를 scope에 지정된 영역의 var 속성에 명시한 EL변수에 저장한다.
- var 속성을 지정하지 않으면 태그의 위치에 URL로부터 읽어온 데이터 결과를 출력한다.
- url 속성은 절대URL(완전한 URL) 또는 상대URL(웹 어플리케이션 내에서의 절대 경로 또는 현재 JSP에 대한 상대 경로)을 입력할 수 있다.
- 절대URL
- java.net.URL 그리고 java.net.URLCOnnection 을 이용해서 데이터를 읽어온다.
- charEndoing 속성 값을 지정했다면 명시된 캐릭터 인코딩 이용
- URLConnection.getContentType() 메서드가 리턴한 값이 인코딩을 포함하고 있으면 이용
- 그렇지 않다면 ISO-8859-1 을 이용
- 상대URL
- <jsp:include> 액션 태그와 동일한 방식으로 동작한다.
- <jsp:include> 액션 태그와는 달리 웹 어플리케이션에 속한 자원의 결과를 변수에 보관한 뒤 필요에 따라 처리를 할 수 있다.
- 요청 파라미터는 URL에 직접 입력 또는 <c:param> 태그를 이용하는 방식이 있다.
<!-- c_import.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% request.setCharacterEncoding("UTF-8"); %> <c:choose> <c:when test="${ param.type == 'java' }"> <c:import url="http://gangzzang.tistory.com/category/Java/Java%20SE" />
</c:when> <c:when test="${ param.type == 'jsp' }"> <c:import url="http://gangzzang.tistory.com/category/Java/Java%20EE" />
</c:when> <c:when test="${ param.type == 'youtube' }"> <c:import url="http://www.youtube.com/results"> <c:param name="search_query" value="독도" /> </c:import> </c:when> <c:otherwise> <c:import url="c_import_help.jsp"> <c:param name="message" value="파라미터 값을 붙여주세요~!" /> </c:import> </c:otherwise> </c:choose>
<!--c_import_help.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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>?type=값</title> </head> <body> <h1>${ param.message }</h1> <hr> <ul> <li>갱짱.study Java 카테고리 : /c_import.jsp?type=java</li> <li>갱짱.study JSP 카테고리 : /c_import.jsp?type=jsp</li> <li>유튜브 독도 검색 : /c_import.jsp?type=youtube</li> </ul> </body> </html>
1.3.2. <c:url> 태그
- URL을 생성해주는 기능을 한다.
- <c:url value="URL" var="변수명", scope="영역"> <c:param name="이름", value="값"> </c:url>
- var과 scope 속성은 생략이 가능하다. var 속성이 지정되지 않으면 현재 위치에 생성한 URL을 출력하고 지정되면 해당 영역 변수에 URL을 할당한다.
- <c:param> 태그를 이용해서 URL에 파라미터를 추가할 수 있다.
- value 속성은 절대URL(완전한 URL) 또는 상대URL(웹 어플리케이션 내에서의 절대 경로 또는 현재 JSP에 대한 상대 경로)을 입력할 수 있다.
<!-- c_url.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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=UTF-8"> <title>c:url</title> </head> <body> <!-- 파라미터의 이름과 값의 인코딩은 contentType의 명시된 캐릭터 셋으로 처리 --> <c:url value="http://search.daum.net/search" var="searchUrl"> <c:param name="w" value="blog" /> <c:param name="q" value="독도" /> </c:url> <ul> <li>${ searchUrl }</li><!-- 절대URL --> <li><c:url value="/c_url.jsp" /></li><!-- 상대URL - 절대경로 --> <li><c:url value="./c_url.jsp" /></li><!-- 상대URL - 상대경로 --> <li><c:url value="../c_url.jsp" /></li><!-- 상대URL - 상대경로 --> </ul> </body> </html> <!-- 실행결과 http://search.daum.net/search?w=blog&q=%eb%8f%85%eb%8f%84 /JSPStandardTagLibrary/c_url.jsp ./c_url.jsp ../c_url.jsp -->
1.3.3. <c:redirect> 태그
- response.sendRedirect() 메서드처럼 지정한 페이지로 리다이렉트 시켜주는 기능을한다.
- <c:redirect url="URL" context="컨텍스트경로"> <c:param name="이름" value="값"> </c:redirect>
- URL 속성 값이 슬래시로 시작할 경우 컨텍스트 경로가 추가된다.
- 다른 컨텍스트 경로로 리다이렉르 할때는 context 속성에 컨텍스트 경로를 명시한다.
- <c:redirect> 태그가 실행되면 그 이후의 태그는 실행되지 않는다.
<c:redirect url="http://gangzzang.tistory.com/" /> <c:redirect rul="http://search.daum.net/search"> <c:param name="w" value="blog" /> <c:param name="q" value="독도" /> </c:redirect>
1.4. 기타 코어 태그
1.4.1. <c:out> 태그
- JspWriter에 데이터를 출력할 때 사용한다.
- <c:out value="값" escapeXml="boolean" default="기본값" />
- <c:out value="값" escapeXml="boolean" > 기본 값 </c:out>
- value 속성은 출력할 값을 나타낸다. 문자열을 주로 값으로 쓴다. 값이 java.io.Reader의 한 종류라면 out 태그는 Reader로 읽어와 출력한다.
- default 속성에는 value 속성에 값이 존재하지 않을 때 기본값을 지정한다.
- escapeXml 속성이 true일 경우 아래 표에 해당하는 문자를 이스케이프 시퀀스로 변경한다. 생략할 경우 기본값은 true이다.
문자 | 변환된 형태 |
< | < |
> | > |
& | & |
' | ' |
" | " |
<!-- c_out.jsp --> <%@page import="java.io.IOException"%> <%@page import="java.io.FileReader"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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=UTF-8"> <title>c:out</title> </head> <body> <c:out value="<font size=7>갱짱</body>폰트 태그의 출력" escapeXml="true"/> <br> <br> <c:out value="<font size=7>갱짱</body>" escapeXml="false" /> </body> </html> <!-- 실행결과 <font size=7>갱짱</body>폰트 태그의 출력 갱짱 -->
1.4.2. <c:catch> 태그
- 발생된 익셉션을 EL 변수에 저장할 때 사용된다.
- <c:catch var="변수명"> . . . 익셉션이 발생할 수 있는 코드 . . . </c:catch> ${ 변수명 }
<!-- c.catch.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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=UTF-8"> <title>c:catch</title> </head> <body> <c:catch var="exception"> name 파라미터 값 : <%= request.getParameter("name") %><br> <% if (request.getParameter("name").equals("test")) { %> ${ param.name }은 test 입니다. <% } %> </c:catch> <hr> <c:if test="${ exception != null }"> 익셉션이 발생하였습니다.<br> ${ exception } </c:if> </body> </html> <!-- 실행결과 name 파라미터 값 : null --------------------------------------------- 익셉션이 발생하였습니다. java.lang.NullPointerException -->
'Programming > Doodle' 카테고리의 다른 글
Chocolatey 사용기 (0) | 2017.04.20 |
---|---|
JQuery Method (0) | 2017.02.24 |
JSP JSTL(JSP Standard Tag Library) 라이브러리 추가 (0) | 2016.11.21 |
(java) 파일크기(byte)를 KMGT..로 표현하는 계산식 (0) | 2016.11.17 |
이클립스 Amateras ERD 쉬운 설치 방법 (0) | 2016.11.16 |