본문 바로가기

web/jsp

JSTL EL

JSTL이란 JavaServer Pages Standard Tag Library의 약자로 jsp 내애서 자바 코드를 사용하지 않고 대신 태그 형식으로 사용하자는 취지에서 나온 기술이다. 자바 파일에서는 자바코드만 쓰고 jsp 파일에서는 태그만 쓰면 가독성과 코드가 간결해진다는 장점이 있다.

 

EL은 Expression Language로 데이터를 간결하게 표현하도록 해주는 스크립트 언어이다.

 

 

JSTL

    태그 형식으로 조건문, 반복문 등 연산이 가능하다. 연산이 가능하니 주석 처리를 할 경우 컴파일을 막는 <%--> <--%> 

    주석을 사용해야 한다.

 

JSTL jar 다운로드

https://mvnrepository.com/artifact/javax.servlet/jstl/1.2

위의 주소에서 jar를 다운받느다.

 

jsp 파일에서 사용하려면

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

로 태글 라이브러리를 추가해 주어야 한다.

 

core태그 종류

태그 설명
<c:set> 변수에 값을 대입
<c:out> 값을 출력
<c:if> if문
<c:choose>
    <c:when>
    <c:otherwise>
choose는 switch문이며 choose안에 when과 otherwise를 사용한다. when은 case이며 otherwise는 default의 역할을 한다.
<c:forEach> for문이다.
<c:remove> 지정된 scope의 변수를 삭제한다.

 

core태그 사용법

<c:set> : 

<c:set var="key" value="값" scope="범위"></c:set>

or

<c:set var-"key" scope="범위"> 값 </c:set>

* scope="page"로 주면 해당 페이지 내에 서면 사용 가능하다. 또한 이미 존재하는 key값으로 value를 다른 값으로 주면 해당 key의 값이 수정된다.

 

<c:out> :

<c:out value=${key} default="기본값"></c:out>

* $를 출력하고 싶으면 \$ 로 표현 가능하다.

${} 과 <c:out/> 의차이

    ${} 안에서는 연산이 되기 때문에 html이나 script가 실행이 가능하다. 반면 <c:out> 태그는 value에 script를 전달해도           default로 escapeXML옵션이 true로 되어 있기 때문에 문자열로 처리하므로 script태그가 실행되지 않는다. 따라서               <c:out>을 사용하는 것이 좋다.

 

<c:remove> : 

<c:remove var="key" scope="범위"/>

 

<c:if> :

<c:if test="${조건식}">

 

<c:choose> : 

    <c:when test="${조건식}"> 결과 </c:when>

    <c:otherwise> 결과 </c:otherwise>

</c:choose>

 

<c:forEach> : 

<c:forEach var="변수명" begin="시작값" end="종료값" step="증감값"></c:forEach>

* for문과 동일하다. 주의사항으로는 begin이 1이고 end가 10이고, step을 1로 주었을 경우 1 <= 변수명 <= 10으로 10을 포함시킨다. 또한 step은 생략 가능한데 생략하면 1로 적용된다.

<c:forEach var="변수명" begin="시작값" end="종료값" step="증감값" varStatus="status">

    varStatus를 status로 주었으니 status.begin, status.end 이런 식으로 for문의 상태를 가져올 수 있다.

    * status.first : index가 시작값이면 true, 아니면 false를 반환

    * status.last : index가 종료값이면 true, 아니면 false를 반환 

</c:forEach>

 

EL

값을 표현하는 방식은 ${변수명}으로 표현 가능하다.

만약 scope를 정해주지 않으면 작은 scope부터 큰 scope순으로 찾는다.

page → request → session → application 순으로 찾는다. 

 

자주 쓰는 표현들 

${param.변수명} : GET방식으로 전단된 데이터를 받을 경우 사용한다. (쿼리 스트링)

${requestScope.변수명} : request.setAttribute("key", "value") 로 저장된 데이터를 받을 경우 사용한다.

${sessionScope.변수명} : session.setAttribute("key", "value") 로 저장된 데이터를 받을 경우 사용한다.

 

EL 연산자

EL 연산자는 기호로 쓰는 방법과 문자로 쓰는 방법이 있다.

기호로 쓰는 방법 문자로 쓰는방법
% mod
&& and
|| or
> lt
< gt
>= le
<= ge
== eq
!= ne
empty (설명)
값이 없으면 true를 반환하고 값이 있으면 false를 반환한다.

! not

    

    

'web > jsp' 카테고리의 다른 글

톰캣 이클립스 연동  (0) 2023.07.14