<%= %>
, out.println()
과 같은 자바코드를 더 이상 사용하지 않고 좀 더 간편하게 출력을 지원하기 위한 도구 ${...}
- page scope : 하나의 JSP 페이지에서만 사용
- request scope : 하나의 요청(request)에서만 사용할 수 있는 영역
- session scope : 하나의 웹 브라우저에서 사용할 수 있는 영역
- application scope : 웹 어플리케이션 영역
💡 예시
<!-- request의 result를 가져오고 싶을 때 -->
${requestScope.result } 입니다.<br>
${param.num }<br>
+, -, * , /(div), %(mode)
&&(and), ||(or), !(not)
==(eq), !=(ne), <(lt), >(gt), <=(le), >=(ge)
💡 예시
주소 : http://localhost:8081/el_test.jsp?num=5
${param.num gt 3 } // true
${empty ""} -> true
${empty null} -> true
${empty data} -> 값이 없으면 true, 값이 있으면 data
💡 예시
주소 : http://localhost:8081/el_test.jsp?num=5
<!-- 파라미터 num의 값이 empty? true/false -->
${empty param.num }<br>
${not empty param.num }<br>
${empty param.num?'값이 비어있습니다':param.num }<br>
👍 결과
request.setAttribute("cnt",30);
- 위의 값 꺼내기
-> EL문 미사용 : request.getAttribute("cnt");
-> EL문 사용 : ${cnt}
List list = new ArrayList<>{"1", "test", ...};
request.setAttribute("list",list)
- 위의 값 꺼내기
-> EL문 미사용 : (List)request.getAttribute("list").get(0)
-> EL문 사용 : ${list[0]}
연산이나 조건문, 반복문
을 편하게 처리<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- 접두사 c를 사용해서 jstl 사용 할 것
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
- 접두사 fn을 사용해서 jstl 함수 사용 할 것
c:set
: 변수만들 때 <c:set />
** 💡 예시**
<c:set var="userid" value="apple" scope="page"/>
<c:set var = "userid" value="${param.userid }"/>
c:out
: 값 출력할 때 (잘 사용 x -> el문 사용) <c:out></c:out>
** 💡 예시**
<c:out value="${userid }"/>
c:choose
: switch문 -> 내부에 c:when, c:otherwise
<c:choose></c:choose>
c:when
: case문 <c:when></c:when>
c:otherwise
: default <c:otherwise></c:otherwise>
** 💡 예시**
<c:set var="num" value="100"/>
<c:choose>
<c:when test="${num gt 50 }">
이 수는 50보다 큽니다.
</c:when>
<c:when test="${num gt 30 }">
이 수는 30보다 큽니다.
</c:when>
<c:when test="${num gt 10 }">
이 수는 10보다 큽니다.
</c:when>
<c:otherwise>
이 수는 그 외의 숫자 입니다.
</c:otherwise>
</c:choose>
c:forEach
: for문 <c:forEach></c:forEach>
** 💡 예시**
<c:set var="arData" value="<%=new int[]{10, 20, 30, 40, 50} %>"/>
<c:forEach var="i" begin="0" end="4" step="1">
${arData[i] }
</c:forEach>
<!-- 같은 식 변형 --!>
<c:forEach var="data" items="${arData }">
${data }
</c:forEach>
c:if
: if문 <c:if></c:if>
** 💡 예시**
<c:if test="${num gt 50 }">
<script>
alert("이 수는 50보다 크다");
</script>
</c:if>
💡 예시
<%
HashMap<String, String > map = new HashMap<>();
map.put("1","1");
map.put("2","2");
map.put("3","3");
map.put("4","4");
map.put("5","5");
%>
<c:set var="map" value="<%=map %>"/>
<c:set var="str1" value="jstlfn"/>
<br>length(map) : ${fn:length(map) }
<br>length(str1) : ${fn:length(str1) }
<br>toUpperCase(str1) : ${fn:toUpperCase(str1) }
<br>toLowerCase(str1) : ${fn:toLowerCase(str1) }
<br>substring(str1) : ${fn:substring(str1, 1, 3) }
👍 결과