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" -->
&lt;h3&gt;테스트&lt;h3&gt;


</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>

태그:

카테고리:

업데이트:

댓글남기기