<c:choose>
<c:when text="${조건1}"> 처리내용1 </c:when>
<c:when text="${조건2}"> 처리내용2 </c:when>
// 조건1에 해당하는 내용 제외
<c:otherwise> 기타처리내용 </c:otherwise>
// 조건1,2에 해당하는 내용 제외
<form>
영어:<input type="text" name="eng">
국어:<input type="text" name="kor">
수학:<input type="text" name="math">
<input type="submit">
</form>
// 전송받은 데이터가 null이 아니고 공백이 아닐 때
<c:if test="${not empty param.eng && not empty param.kor && not empty param.math }">
<c:set var="tot" value= "${param.eng+param.kor+param.math }"></c:set>
<c:set var="avg" value= "${tot/3 }"></c:set>
<h2>총합 : ${tot }</h2>
</c:if>
<h3>평가등급:
<c:choose>
<c:when test="${avg>=90 }" >A등급</c:when>
<c:when test="${avg>=80 }" >B등급</c:when>
<c:when test="${avg>=70 }" >C등급</c:when>
<c:when test="${avg>=60 }" >D등급</c:when>
<c:when test="${avg>=0 }" >F등급</c:when>
<c:otherwise>등급은 점수가(0~100)일때 가능합니다</c:otherwise>
</c:choose>
</h3>
주의) jstl은 모두가 전역변수 개념 : 블럭내부에 선언한 데이터도 전역변수이기에 외부에서 사용 가능하다
<%
List<String> flist = Arrays.asList(new String[]{"사과","바나나","포도","레몬","수박","블루베리","딸기","복숭아","키위"});
request.setAttribute("frut", flist);
%>
<table><col width="33%"><col width="33%">
<c:forEach var ="f" items="${frut }" varStatus="sts"> // 객체형 배열 frut를 가져옴
<c:if test="${sts.index%3==0 }"><tr></c:if>
<td>${f }</td>
<c:if test="${sts.index%3==2 }"></tr></c:if>
</c:forEach>
</table>