[ EL / JSTL ] JSTL 이해 및 조건 코드 사용 예

2024. 3. 7. 22:30· LANGUAGE/└ EL | JSTL

환경 : Spring Tool Suite4

 

 

JSTL(Jsp Standard Tag Library, JSP 표준 태그 모음)

  • 태그 형식을 가지는 페이지 생성에 도움되는 도구들
  • 조건, 반복, 예외처리, 포맷변환 등 다양한 처리가 가능
  • 종류 : core, format, function, sql, xml (5가지)
  • EL과 같이 사용하여 효과적으로 페이지를 구현
  • 페이지에 설정으로 등록해야 사용 가능

[ 사용 예 - 전체코드 ]

    - ElJstlController.java

@Controller
@RequestMapping("/el-jstl")
public class ElJstlController {
	@RequestMapping("/test04")
	public String test04(Model model) {
		List<Integer> list = List.of(7, 13, 17, 30, 43, 4);
		model.addAttribute("list", list);
		return "/WEB-INF/views/eljstl/test04.jsp";
	}
}

 

   - test04.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<h1>JSTL을 이용한 조건부 코드</h1>

<h2>n = ${param.n}</h2>

<%--
	<c:if>를 사용하면 조건부 화면을 작성할 수 있다.
 	- test 속성에 EL을 이용하여 조건식을 작성한다
 	- <c:else>, <c:elseif>는 없다
 	- 단순하게 한 가지를 보여주거나 말아야 할 때 사용
 --%>
 
<c:if test="${param.n % 2 == 0}">
 	<h2>n은 짝수입니다</h2>
</c:if>
<c:if test="${param.n %2 != 0}">
	<h2>n은 홀수입니다</h2>
</c:if> 

<%--
	그룹 조건을 사용하고 싶다면 <c:choose>를 사용한다
	- <c:when>은 원하는 개수 만큼 배치가 가능하며 test로 조건식을 작성(EL)
	- <c:otherwise>는 마지막에 1개만 배치가 가능하며 나머지 경우를 처리(else)
 --%>
<c:choose>
	<c:when test="${param.n % 2 == 0}">
		<h2>n은 짝수입니다.</h2>
	</c:when>
	<c:otherwise>
		<h2>n은 홀수입니다.</h2>	
	</c:otherwise>
</c:choose>

<h1>JSTL을 이용한 반복 코드</h1>

<h2>list = ${requestScope.list}</h2>
<h2>list = ${list}</h2>

<%--
for(int number : list){
	System.out.println(number);
}
 --%>
 <c:forEach var="number" items="${list}">
 	<h2>number = ${number} </h2>
 </c:forEach>

[ 코드 풀이 ]

   - 조건문 <c:if>

<c:if test="${param.n % 2 == 0}">
 	<h2>n은 짝수입니다</h2>
</c:if>
<c:if test="${param.n %2 != 0}">
	<h2>n은 홀수입니다</h2>
</c:if>

 

    (+) <c:if>를 사용하면 조건부 화면 작성 가능
    (+) test 속성EL을 이용하여 조건식을 작성

    (+) 중첩 조건문은 없다.

 

   - 그룹 조건(중첩 조건) <c:choose>

<c:choose>
	<c:when test="${param.n % 2 == 0}">
		<h2>n은 짝수입니다.</h2>
	</c:when>
	<c:otherwise>
		<h2>n은 홀수입니다.</h2>	
	</c:otherwise>
</c:choose>

   (+) <c:choose>를 사용하면 그룹  조건 사용 가능
   (+) <c:when>은 원하는 개수 만큼 배치가 가능하며 test로 조건식을 작성(EL)
   (+) <c:otherwise>는 마지막에 1개만 배치가 가능하며 나머지 경우를 처리(else)

   - 반복문 <c:forEach>

<h1>JSTL을 이용한 반복 코드</h1>

<h2>list = ${requestScope.list}</h2>
<h2>list = ${list}</h2>

<c:forEach var="number" items="${list}">
	<h2>number = ${number} </h2>
</c:forEach>

   (+) for(int number : list){
              System.out.println(number);
         }

        이 식을 <c:forEach> 문으로 작성한 예시이다

   (+) var 속성에 변수 명을 알려준다

   (+) items 속성에 반복해서 출력할 객체를 알려준다

 

 

 

 

개인 공부 기록용입니다:)

728x90