JAVA
코드와 HTML
코드가 섞여 있으면 가독성이 떨어진다.
- 값을 간결하고 간편하게 출력할 수 있도록 해 주는 언어
<%= %>
,out.println()
과 같은 자바 코드를 대체
${...}
- 사용 예시
${sessionScope.변수이름}
${param.파라미터이름}
산술연산자 :
기호표기 영문표기 +, -, * 없음 / div % mode
논리연산자 :
기호표기 영문표기 && and || or ! not
비교연산자 :
기호표기 영문표기 기호표기 영문표기 == eq != ne < lt > gt <= le >= ge
empty : 값이 null
이거나 공백문자""
인지를 판단하는 연산자
${empty ""}
-> true${empty null}
-> true${empty data}
-> 데이터 값이 없으면 true, 값이 있으면 data
request.setAttribute("cnt",30);
에서 값 꺼내기request.getAttribute("cnt");
${cnt}
List list = new ArrayList<>{"1","test",...};
request.setAttribute("list", list);
에서 값 꺼내기((List)request.getAttribute("list")).get(0)
${list[0]}
<c:set />
: 변수를 만들 때 사용
- 예시
<c:set var = "name" value="홍길동" />
<c:set var = "name">홍길동</c:set>
<c:out> </c:out>
: 값을 출력(EL문을 더 많이 사용)
- 예시
<c:out value="${name }"/>
<c:if> </c:if>
: test 속성 내의 EL결과가 참이면 실행(* else 구문은 없음)
- 예시
<c:if test="${name eq '홍길동'}"> <c:out value = "홍길동 접속" /> </c:if>
<c:choose> </c:choose>
: 조건 제어(switch)
c:when
, c:otherwise
만 있어야 한다.<c:when> </c:when>
: 조건 제어(case)문<c:otherwise> </c:otherwise>
: 조건 제어(default)문
- 예시
<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> </c:forEach>
: 반복 제어(for)문
- 예시
<c:set var="arData" value="<%= new int[]{10,20,30,40,50}%>"/> // begin, end, step 옵션 <c:forEach var="i" begin="0" end="4" step="1"> ${arData[i] } </c:forEach> // items 옵션 <c:forEach var="data" items="${arData }"> ${data } </c:forEach>
- core
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- functions
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
- 참고