Java 및 JSP

[JSP] JSTL 활용

jane.dev 2021. 8. 12. 23:33
반응형

2021.08.10 - [Java 및 JSP] - [JSP] EL과 JSTL

 

[JSP] EL과 JSTL

EL(Expression Language) JSP에서 저장 객체를 출력할 때 스크립팅을 사용하지 않도록 하는 기술 일종의 스크립트 언어로 자료 타입, 수치 연산자, 논리 연산자, 비교 연산자 등을 제공하며 표현식을 대

wheneveryouwantsz.tistory.com

 

1. 조건문(if) 태그

get 방식으로 넘겨 uri에 '?name=name값'을 넣으면 name값에 해당하는 데이터 값을 출력

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

 

<c:if test = "${param.fruit == 'mango' }">
	I like ${param.fruit }!
</c:if>
<c:if test = "${param.fruit == 'watermelon' }">
	I like ${param.fruit }!
</c:if>

 

파라미터로 넘어온 값을 받아 출력

 

2. 조건문(choose) 태그

점수를 입력하면 각 점수에 맞는 학점을 알려주는 학점 계산기

전달 JSP 파일

<h2>점수를 입력해주세요.</h2>
<form action = "파라미터 값을 넘길 파일명" method = "get">
    <input type = "number" name = "score" placeholder = "당신의 점수는?" required /><br>
    <input type = "submit" value = "점수 확인하기" /><br>
</form>

 

수신 JSP 파일

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c">
<h2>당신의 학점은?</h2><hr>
<c:choose>
	<c:when test = "${param.score <= 100 && score >= 0}">
        <c:choose>
            <c:when test = "${param.score >= 90 }">
            	<p>A학점입니다.</p>
            </c:when>
            <c:when test = "${param.score >= 80 }">
            	<p>B학점입니다.</p>
            </c:when>
            <c:when test = "${param.score >= 70 }">
            	<p>C학점입니다.</p>
            </c:when>
            <c:when test = "${param.score >= 60 }">
            	<p>D학점입니다.</p>
            </c:when>
            <c:otherwise>F학점입니다.</c:otherwise>
        </c:choose>
    </c:when>
    <c:otherwise>범위에 맞는 점수를 입력해주세요.(0점 이상 100점 이하로 작성)</c:otherwise>
</c:choose>

 

3. 반복문 태그

1부터 100까지의 합을 구함

<h2>1부터 100까지의 합</h2>
<c:set var = "sum" value = "0" />
<c:forEach var = "n" begin = "1" end = "100">
    <c:set var = "sum" value = "${sum + n }" />
</c:forEach>

<c:out value = "${sum }" />

위 아래 같은 내용

int sum = 0;
for(int n = 1; n <= 100; n++){
	sum = sum + 1;
}

 

1부터 100까지 홀수의 합을 구함

<h2>1부터 100까지 홀수의 합</h2>
<c:set var = "sum" value = "0" />
<c:forEach var = "n" begin = "1" end = "100" step = "2">
    <c:set var = "sum" value = "${sum + n }" />
</c:forEach>

<c:out value = "${sum }" />

step을 2로 작성하면 1(begin)부터 시작해서 2(step)씩 증가 1, 3, 5, 7, ..., 97, 99(end)