코어라이브러리에 대해 알아보겠습니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
위의 코드는 core태그를 사용하기 위한 코드입니다. prefix로 core의 머릿글자인 c를, uri로 어떤 라이브러리를 쓸 것인지를 넣습니다.
core 태그에는 여러가지 기능들이 있는데 먼저 set, if, forEach에 대해 알아보겠습니다.
1. set
<c:set var="test" value="테스트" />
jsp에서 변수를 사용하기 위해 c:set태그를 사용합니다. var는 변수의 이름을, value는 변수의 값을 입력합니다.
선택으로 변수의 scope를 설정할 수 있습니다.
<c:set var="test" value="테스트" scope="session" />
맨 마지막에 scope를 통해 변수의 scope를 설정할 수 있습니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<% request.setCharacterEncoding("UTF-8"); %>
<c:set var="name" value="난쟁이" />
<c:set var="age" value="7" />
<c:set var="job" value="student" />
첫번째 줄에서는 core tag 사용을 위한 코드, 두번째줄은 한글깨짐을 방지하기 위한 코드, 세번째 줄 부터는 c:set입니다.
첫번째 변수(var)는 이름을, 두번째는 나이, 세번째는 직업으로 설정했고, 첫번째 변수인 이름에 대한 값으로 난쟁이, 7살, 학생으로 설정했습니다.
<body>
<p>이름 : ${name }</p>
<p>나이 : ${age }</p>
<p>직업 : ${job }</p>
</body>
html부분입니다. core태그로 설정했던 부분을 표현하는 방법은 ${}입니다.
처음 c:set으로 설정했던 변수(var)를 기입하면 출력이 되는 형식입니다.
아래는 출력결과입니다.
2. if
c:if는 조건문의 역할입니다.
<c:if test="${조건식}"></c:if>
앞에 c:if를 붙여야 if문을 실행할 수 있으며, test는 조건을 채우는 부분입니다. 뒤에 var를 통해 조건식의 결과값을 채울 수 있으며, scope설정도 가능합니다.
<body>
<c:if test="${age<20}">
<p>성인이 아닙니다.</p>
</c:if>
<c:if test="${age>=20}">
<p>성인입니다.</p>
</c:if>
</body>
20세 미만이면 성인이 아님을, 20세 이상이면 성인임을 나타내는 if문을 사용했습니다.
아래는 출력결과입니다.
난쟁이의 나이는 7살이였으므로 20세 미만이기 때문에 성인이 아님을 출력되었습니다.
3. forEach
c:forEach태그는 반복문의 역할로 코드는 다음과 같습니다.
<c:forEach var="i" begin="1" end="10" step="1"></c:forEach>
var는 변수를 지정하고 begin은 시작을, end는 끝을, step은 반복시 증가시킬 숫자를 나타냅니다.
정리하면 1부터 10까지 한번씩 증가하면서 반복하겠다는 의미로 총 열번을 반복합니다.
step을 생략하면 기본값은 1입니다.
<c:forEach var="i" begin="1" end="10" step="1">
<span>${i} </span>
</c:forEach>
위의 반복문은 1부터 10까지의 숫자를 나타내기 위한 코드입니다.
아래는 출력결과입니다.
<c:forEach var="i" begin="1" end="10" step="1">
<c:if test="${i%2==0}">
<span>${i }</span>
</c:if>
</c:forEach>
추가로 1부터 10까지 나열하는데 짝수만을 출력하는 예제입니다.
아래는 출력결과입니다.
%연산자를 이용해서 2로 나눈값이 0이 되는 조건문을 걸어 출력하는 방법입니다.
'코딩 > JSP' 카테고리의 다른 글
JSTL Core tag(2) (0) | 2020.07.16 |
---|---|
JSTL(JSP 표준 태그 라이브러리) (0) | 2020.07.15 |
jsp:useBean (0) | 2020.07.10 |
XML. HTML과 다른점은? (0) | 2020.07.10 |
JSP scope (0) | 2020.07.09 |
최근댓글