(JSP)JSTL 사용하기

DevSeoRex·2022년 6월 1일
0

JSP

목록 보기
1/1

JSTL 사용하기

JSP에서 Java의 영역을 <% %>로 표시하는데, 이런 방식으로 코드를 작성하게 되면,
조건문이나 반복문을 실행할때 구역을 나누면서 코드가 굉장히 길어진다.

<%
	for(int i=0; i<10; i++){
		%>
		출력할 내용
        <br>
	<% 
	}
	%>

이렇게 작성하던 것을 jstl을 이용해서 작성하게 되면

<c:forEach begin="1" end="10">
		출력할 내용
		<br>
	</c:forEach>

코드가 정말 간결하고 경제적으로 작성된다.
JSTL을 사용하기 위해서는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
JSP파일 가장위에 넣어주면 되고, prefix="c"는 jstl을 사용할때 <c:foreach> 이런식으로 앞에 붙을 문자를 임의로 정해주는 것이다.

<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="UTF-8"%>
<%@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="EUC-KR">
<title>JSTL</title>
</head>
<body>
	<c:set var="number" value="10"></c:set>
	<c:set var="arr" value="10,20,30,40,50,60,70"></c:set>
	<c:forEach var="i" begin="1" end="${number}"> 
		${i}
	</c:forEach>
	<br>
	<c:if test="${not empty arr}">
		<c:forEach var="elem" items="${arr}" varStatus="st">
			${st.count }. arr[${st.index}] = ${elem}
			<br>
		</c:forEach>
	</c:if>
	<br>
	<c:set var="age" value="${param.age}"></c:set>
	<c:choose>
		<c:when test="${age >=19}">성인 입니다.</c:when>
		<c:when test="${age < 19}">성인이 아닙니다.</c:when>
		<c:otherwise>올바른 값이 아닙니다 값을 다시 입력해주세요.</c:otherwise>
	</c:choose>
	<br>
	<c:set var="msg" value="${param.msg }"></c:set>
	<c:if test="${msg == null }">메시지가 없습니다.</c:if>
	<c:if test="${msg != null }">
		${msg}
	</c:if>
	<br>	
	<c:set var="date" value="<%=new java.util.Date()%>"/>
	Server Time is<fmt:formatDate value="${date}" type="both" pattern="yyyy/MM/dd HH:mm:ss"/>
</body>
</html>

<c:set> 태그는 var="변수이름", value="값" 형식으로 사용한다.

<c:forEach>태그는 배열과 같이 여러 값이 저장 연속적으로 저장 되어 있는 것을 뽑아낼 경우에는 var="반복적으로 뽑아낼 요소", items="값이 여러개인 변수" varStatus="반복을 할 횟수(Count)와 순서(index)를 가지고 있는 요소 형식으로 사용한다.

<c:forEach>태그로 특정 문장이나 값을 횟수를 정해서 반복해서 뽑아내고 싶은 경우에는
begin="시작할 값(숫자)" end="끝낼 값(숫자)" begin="1" end="10" 이라면 <c:forEach> 태그 안에 넣어둔 출력문이 10번 반복된다.

<c:out> 태그는 페이지에 출력할 요소를 넣으면 out.print() 같은 역할을 한다. value="페이지에 보여질 내용" 형식으로 사용하면 된다.

<c:if> 태그는 test="조건"을 넣고, 태그 사이에 출력할 내용을 넣으면, 조건을 만족하게 되면 해당 출력 내용이 페이지에 표시된다.

<c:choose> Java의 Switch문과 비슷한 느낌을 가지고 있다. <c:when> 태그안에 test로 조건을 준뒤, 조건이 만족하면 해당 내용을 보여주고, 아니면 다른 <c:when> 조건에 만족하는 것이 있는지 확인하고 해당 <c:when> 태그 안에 있는 내용을 보여준다. 그것도 아니면 <c:otherwise> 태그(만족하는 값이 없을 경우 Switch문의 default와 비슷하다)를 이용해서 내용을 보여준다.

<fmt:formatDate> 태그는 jstl Core가 아닌 jstl Fmt를 JSP파일 맨 위에서 사용가능 하게 선언해 주어야 하고, 출력할 문자열의 형식을 맞춰주는 태그다. value 값으로 Java.util.Date() (시스템의 현재 날짜와 시간)을 넣었으므로, pattern="양식"을 줘서 yyyy/MM/dd HH:mm:ss 를 주었다.

0개의 댓글