EL문과 JSTL

devlsn96·2024년 9월 13일
0

1. EL문과 JSTL

  • JSP페이지 내에 자바 코드와 HTML코드가 섞여있으면 가독성이 떨어진다.
    EL문과 JSTL문을 사용하면 HTML과 같은 태그로만 구성된 일관된 소스코드를 볼 수 있다는 장점이 있다.

1-1. EL문 (Expression Language)

  • 값을 간결하고 간편하게 출력할 수 있도록 해주는 언어

  • <%= %>, out.println(); 과 같은 자바코드를 더 이상 사용하지 않고 좀더 간편하게 출력을 지원하기 위한 도구이다.

  • 배열이나 컬렉션에서도 사용되고 JavaBean 프로퍼티에서도 사용된다.

1-2. EL표현식

  • EL구문은 ${...} 내에 표현식으로 표현한다.

1-3. EL식의 범위

  • page > request > session > application
    작은 범위부터 추적하여
  • (pageScope : page 영역에서 사용되는 저장소)
  • request : request 영역에서 사용되는 저장소
  • session : session 영역에서 사용되는 저장소
  • application : application 영역에서 사용되는 저장소

1-4. EL연산자

( 괄호 ) 안의 문자로 표현되기도 한다.

  • 산술연산자 : +,-,*,/(div),%(mode)
  • 논리연산자 : &&(and), ||(or), !(not)
  • 비교연산자 : ==(eq), !=(ne), <(lt), >(gt), <=(le), >=(ge)
  • empty 연산자 : 값이 null이거나 공백문자인지를 판단하는 연산자
    ${empty ""} : true
    ${empty null} : true
    ${empty data} : (data변수에 값이 없으면) false

1-5. EL내장객체

  • param : 파라미터값을 저장하고 있는 저장소

2. JSTL

  • JSP Standard Tab Library
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • jstl의 함수 라이브러리
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
  • 연산이나 조건문 반복문을 편하게 처리할 수 있으며 JSP페이지 내에서 자바코드를 사용하지 않고도 로직을 구현할 수 있도록 효율적인 방법을 제공한다.

2-1. jstl

2-2. jstl core 태그

  • 변수 생성시
    <c:set />
    // var map = (map 객체 출력) <c:set var="map" value="<%=map %>"/> // var str1 = (jstl 함수로 출력) <c:set var="str1" value="jstlfn"/>

  • 값을 출력할 때 (보통, EL문을 좀 더 많이 쓴다.)
    <c:out> </c:out>

  • 조건제어 자바의 switch-case문과 유사

<c:choose>
  // 조건제어 _case문
  <c:when> </c:when>
  // 조건제어 _default문
  <c:otherwise> </c:otherwise>
</c:choose>
  • 반복문 _자바의 for문과 유사
    <c:forEach> </c:forEach>
// for (i=0; i<10; i++;) { i };
<c:forEach var="i" begin="0" end="10" step="1">
	${i }
</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>
// data 변수에 arData 배열을 반복적으로 할당
// for ( data : arData) { data };
<c:forEach var="data" items="${arData }">
	${data}
</c:forEach>

2-4. jstl function

  • taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"라이브러리를 선언하여 jstl function을 사용한다.
    -${fn:length() } : 해당 객체의 크기나 데이터의 길이값
    -${fn:toUpperCase() } : 문자열을 대문자로 변환
    -${fn:toLowerCase() } : 문자열을 소문자로 변환
    -${fn:substring(변수,첫번째,두번째인덱스) } : (변수,첫번째,두번째인덱스)를 잘라오기
    -${fn:replace(str1, src, dest) } : 문자열 대체하기 : (변수, 문자열1, 문자열2) : 문자열1을 문자열2로 대체
profile
Quantum Jump to class for java….

0개의 댓글