Day07(jstl)set, if, choose, for
๐Ÿ“† Today I Learned(๊ฐœ๋ฐœ์–ธ์–ดํ•™์Šต)/JSP

Day07(jstl)set, if, choose, for

1. JSTL์ด๋ž€?

์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ ์žˆ๋Š” JSTL์ด๋ž€ JSTL + EL์˜ ์กฐํ•ฉ์„ ๋งํ•œ๋‹ค.

HTML ์ฝ”๋“œ ๋‚ด์— java ์ฝ”๋“œ์ธ ์Šคํฌ๋ฆฝํ‹€๋ฆฟ <%= student %>๋ฅผ ${student}๋กœ, <%=if %>๋ฌธ์„ <c:if>, <%=for%>๋ฌธ์„ <c:forEach>๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

 

01set.jsp

<%@page import="com.study.login.vo.UserVO"%>
<%@ 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>
<html>
<head>
<%request.setCharacterEncoding("UTF-8"); %>
<%@include file="/WEB-INF/inc/header.jsp" %>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="/WEB-INF/inc/top.jsp" %>
<!-- el ๋ณ€์ˆ˜ ์„ ์–ธ -->
<%
	UserVO user = new UserVO("gks", "ํ•œ", "1234", "๋ฐฅ");
	//user ์ฃผ์†Œ๊ฐ’
%>

<c:set var="aa" value="<%=user %>" scope="request"></c:set>
${aa }
<br>
<c:set var="b" value="${aa }"></c:set>
${b }
<!--var, value="" ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’ ๊ณต๋ฐฑ ์ฃผ์˜  -->
</body>
</html>

์ถœ๋ ฅ๋‚ด์šฉ

set์„ ํ™œ์šฉํ•ด์„œ jsp์—์„œ ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ์ฝ”์–ดํƒœ๊ทธ๋ผ๊ณ  ํ•˜๋Š” ๋ฐ, ์ฝ”์–ดํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ณ€์ˆ˜ ์„ค์ •์ด๋‚˜ if-else์™€ ๊ฐ™์€ ๋…ผ๋ฆฌ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ํƒœ๊ทธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋˜ํ•œ ์ฝ”์–ด ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด jspํŽ˜์ด์ง€์— <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.(๋ฌผ๋ก  jstl๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๋ฐ›์•„์•ผํ•œ๋‹ค.)

 

 

02input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%request.setCharacterEncoding("UTF-8"); %>
<%@include file="/WEB-INF/inc/header.jsp" %>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="/WEB-INF/inc/top.jsp" %>
<form action="02if.jsp">
	<input type="number" name="score">
	<input type="submit" value="์„ฑ์ ">
</form>
</body>
</html>

02if.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>
<html>
<head>
<%request.setCharacterEncoding("UTF-8"); %>
<%@include file="/WEB-INF/inc/header.jsp" %>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="/WEB-INF/inc/top.jsp" %>

<%
	int score =Integer.parseInt(request.getParameter("score"));
	//90์ด์ƒ ์ˆ˜, 80์ด์ƒ ์šฐ, .......
%>
<c:if test="<%=score>=90 %>"> <h1>์ˆ˜</h1> </c:if> <!-- test์•ˆ์˜ ๊ฐ’์ด true false -->
<c:if test="<%=score>=80 && score<90 %>"> <h1>์šฐ</h1> </c:if>
<c:if test="<%=score>=70 && score<80%>"> <h1>๋ฏธ</h1> </c:if>
<c:if test="<%=score<70%>"> <h1>์–‘</h1> </c:if>
<!-- c:if๋Š” else๊ฐ€ ์—†๋‹ค. -->
<hr>
<!-- switch : choose, case : when, default : otherwise -->
<c:choose>
	<c:when test="<%=score>=90 %>"></c:when>
	<c:when test="<%=score>=80 && score<90 %>"> <h1>์šฐ</h1> </c:when>
	<c:when test="<%=score>=70 && score<80%>"> <h1>๋ฏธ</h1> </c:when>
	<c:otherwise> <h1>์–‘</h1> </c:otherwise>
</c:choose>

</body>
</html>

<c:if test=""></c:if> ์—์„œ test=""์•ˆ์— ์กฐ๊ฑด์‹์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ์•ˆ์˜ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ(true, false)์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ’์ด ์ •ํ•ด์ง„๋‹ค.

๋˜ํ•œ c:if์—๋Š” else๊ฐ€ ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

switch๋ฌธ์€ ์ž๋ฐ”์™€ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ค๋ฅธ๋ฐ switch๋Š” choose๋กœ case๋Š” when์œผ๋กœ default๋Š” otherwise๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

03for.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>
<html>
<head>
<%request.setCharacterEncoding("UTF-8"); %>
<%@include file="/WEB-INF/inc/header.jsp" %>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="/WEB-INF/inc/top.jsp" %>

<c:forEach begin="1" end="10" var="i" step="2" varStatus="st">
	${i } ๋ฒˆ์งธ <br>
	index : ${st.index } <br>
	count : ${st["count"] } <br>
	first : ${st.first } <br>
	last : ${st.last } <br>
	<hr>
</c:forEach>
</body>
</html>

var์˜ ์žˆ๋Š” ๋ฌธ์ž๋กœ c:forEachํƒœ๊ทธ์•ˆ์—์„œ el์‚ฌ์šฉ

c:forEach์†์„ฑ : begin, end, var, step, item, varStatus

varStatus์†์„ฑ :

  • index(๋ฃจํ”„ ์‹คํ–‰์—์„œ ํ˜„์žฌ ์ธ๋ฑ์Šค)
  • count(๋ฃจํ”„ ์‹คํ–‰ ํšŸ์ˆ˜)
  • first(ํ˜„์žฌ ์‹คํ–‰์ด ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์ธ ๊ฒฝ์šฐ true)
  • last(ํ˜„์žฌ ์‹คํ–‰์ด ๋ฃจํ”„์˜ ๋งˆ์ง€๋ง‰ ์‹คํ–‰์ธ ๊ฒฝ์šฐ true)
  • current(์ปฌ๋ ‰์…˜ ์ค‘ ํ˜„์žฌ ๋ฃจํ”„์—์„œ ์‚ฌ์šฉํ•  ๊ฐ์ฒด)
  • begin(begin์†์„ฑ๊ฐ’)
  • end(end์†์„ฑ๊ฐ’)
  • step(step์†์„ฑ๊ฐ’)