JSP JSTL문법
JSP JSTL문법
- WEB-INF에 lib에 라이브러리 jar 파일 넣기
- <%@ taglib prefix=”정함” url=”사용할 라이브러리 주소” %>
JSTL Core 태그예제 - set, out, remove
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL Core 태그예제 - set, out, remove</h3>
<p>browser 변수값 설정 </p>
<!-- 변수 선언 -->
<c:set var="browser" value="${ header['User-Agent'] }"></c:set>
<!-- 변수 읽기 -->
<c:out value="${ browser }"></c:out>
<p>browser 변수 값 제거 후</p>
<!-- 변수 제거 -->
<c:remove var="browser"/>
<c:out value="${ browser }"></c:out>
</body>
</html>
JSTL Core 태그예제 - if, choose, when, otherwise
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL Core 태그예제 - if, choose, when, otherwise</h3>
<c:set var="country" value="${ 'Korea' }" />
<!-- core if태그는 else 지원 안됨 -->
<c:if test="${ country != null }">
국가명 : <c:out value="${country }" />
</c:if>
<c:if test="${ country == null }">
국가명 : <c:out value="${country }" />
</c:if>
<!-- if~else if~else 구문 -->
<c:choose>
<c:when test="${ country == 'Korea' }">
<p><c:out value="${ country }" />의 겨울은 춥다</p>
</c:when>
<c:when test="${ country == 'Canada' }">
<p><c:out value="${ country }" />의 겨울은 춥다</p>
</c:when>
<c:otherwise>
<p>그 이외의 나라들의 겨울은 알 수 없다</p>
</c:otherwise>
</c:choose>
</body>
</html>
JSTL Core 태그예제 - forEach
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Header 정보 : ch04폴더의 requestTest2.jsp 파일과 동일한 의미</h3>
<!-- var : 변수키워드, items : 배열 또는 컬렉션 -->
<c:forEach var="head" items="${ headerValues }">
<p>param : <c:out value="${ head.key }" /></p>
<p>values :
<c:forEach var="val" items="${ head.value }">
<c:out value="${ val }" />
</c:forEach>
</c:forEach>
</body>
</html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String[] fruit = {"사과", "배", "딸기", "복숭아"};
request.setAttribute("menu", fruit); // request.Scope 영역에 menu 키로 저장
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>forEach 태그 사용예제</h3>
<!-- 사용법 1) -->
<c:forEach var="i" begin="0" end="10" step="2">
<p><c:out value="${ i }" />
</c:forEach>
<!-- 사용법 2) -->
<c:forEach var="str" items="${ menu }">
<p><c:out value="${ str }" />
</c:forEach>
<h3>varStatus : count</h3>
<c:forEach var="str" items="${ menu }" varStatus="status">
<c:if test="${ status.first }">
시작
</c:if>
<p>[${ status.count }]<c:out value="${ str }" />
<c:if test="${ status.last }">
끝
</c:if>
</c:forEach>
</body>
</html>
JSTL Core 태그예제 - forTokens
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL Core 태그예제 : forTokens</h3>
<c:forTokens var="skill" items="자바, 스프링, html, CSS, JS" delims=",">
<p>skill : <c:out value="${ skill }" />
</c:forTokens>
</body>
</html>
JSTL Core 태그예제 : import
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL Core 태그예제 : import</h3>
<c:import var="url" url="/ch08/registerForm.jsp"></c:import>
<p>include 액션태그와 동일한 기능을 제공한다. 다른점은 변수를 이용할 수 있다
<!-- escapeXml 속성의 기본값은 true -->
<c:out value="${ url }" escapeXml="false"/>
<!-- 브라우저 굵게 출력 -->
<h3>테스트</h3>
<!-- <h3>테스트</h3> 태그문법 그대로 출력. escapeXml="true" -->
<h3>테스트<h3>
</body>
</html>
JSTL fmt 태그예제 = requestEncoding
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<fmt:requestEncoding value="utf-8"/>
<h3>JSTL fmt 태그예제 = requestEncoding</h3>
<p>파라미터 : <c:out value="${ param.name }"></c:out>
<form method="post" action="jstlEx6.jsp">
<ul>
<li>
<label>이름</label>
<input type="text" id="name" name="name">
<input type="submit" value="확인">
</li>
</ul>
</form>
</body>
</html>
JSTL fmt 태그예제 - formatNumber
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL fmt 태그예제 - formatNumber</h3>
<p>number : <fmt:formatNumber value="12345.678" type="number" />
<p>currency : <fmt:formatNumber value="12345.678" type="currency" currencySymbol="₩" />
<p>percent : <fmt:formatNumber value="12345.678" type="percent" />
<p>pattern=".0" : <fmt:formatNumber value="12345.678" pattern=".000" />
</body>
</html>
JSTL functions 라이브러리의 함수 사용예제
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>JSTL functions 라이브러리의 함수 사용예제 : String 클래스의 메서드와 유사</h3>
<c:set value="test String" var="str1" />
<c:set value="<aaa>여기</aaa>를 클릭해서 다운로드" var="str2" />
<p>str1 출력 : ${ str1 }
<p>str2 출력 : ${ fn:escapeXml(str2) }
<!-- "test String" 문자열에서 'test' 단어 존재여부를 boolean 값으로 반환 -->
<c:if test="${ fn:contains(str1, 'test') }">
<p>test 문자열 포함됨
</c:if>
<!-- str1 변수에 t 문자열 검색하여, 존재하면 t 문자의 위치를 반환 : 0 -->
<p>indexOf(str1, 't') : ${ fn:indexOf(str1, 't') }
<!-- str2 변수의 문자열 길이를 반환 -->
<p>length(str2) : ${ fn:length(str2) }
<!-- str1 변수의 문자열데이터를 ' ' 구분자를 이용하여, 배열로 반환 -->
<c:set var="spStr" value="${ fn:split(str1, ' ') }"></c:set>
<p>split(str1, ' ') 수행 후 첫 배열 원소값 : ${ spStr[0] }
<p>join(spStr, '-') : ${ fn:join(spStr, '-') }
<p>replaece(str1, 'test', '테스트') : ${ fn:replace(str1,'test', '테스트') }
<p>startsWith(str1,'test') : ${ fn:startsWith(str1,'test') }
<p>substring(str1, 0, 3) : ${ fn:substring(str1, 0, 3) }
<p>substringAfter(str1, ' ') : ${ fn:substringAfter(str1, ' ') }
<p>toLowerCase(str1) : ${ fn:toLowerCase(str1) }
<p>toUpperCase(str1) : ${ fn:toUpperCase(str1) }
</body>
</html>
댓글남기기