Spring EL/JSTL

Happy_JG·2023년 10월 11일

Spring

목록 보기
2/17

EL/JSTL

EL(Expression Language)/JSTL(JavaServer Pages Standard Tag Library)
JEL은 자바 웹 어플리케이션에서 사용되는 스크립팅 언어로 JSP에서 데이터를 검색, 조작 및 표현하기 위한 편리한 언어이다.

<c:set/> 예제

<c:set var="message" value="Hello, World!" />
<!-- "message"라는 변수를 설정하고 값을 할당합니다. -->

<p>${message}</p>
<!-- 변수 "message"의 값을 출력합니다. -->

'<c:set/>'을 사용하여 JSP 페이지에서 변수를 설정할 수 있다. 이 변수는 나중에도 사용이 가능하고 다른 JSTL 태그 및 EL에서 참조될 수 있다.

<c:if> 예제

<c:if test="${vo.boardAvailable == 0}">
    <!-- 조건이 참일 때 이 내용을 표시합니다. -->
    <p>이 내용은 조건이 참일 때만 보입니다.</p>
</c:if>

<c:forEach> 예제

<c:forEach items="${userList}" var="user" varStatus="i">
    <!-- userList에 있는 각 사용자에 대한 내용을 표시합니다. -->
    <p>사용자 이름: ${user.name}, 나이: ${user.age}</p>
</c:forEach>

'${userList}'는 순회할 목록이고, 'var="user"'는 각 요소를 참조할 변수 이름을 나타낸다.
'${user.name}' 및 '${user.age}'와 같이 사용자의 속성에 접근한다.

forEach문에서는 items, var, varStatus, 가 있다.

items : 순회할 목록이다.
var : 현재 반복중인 요소를 참조할 변수를 정의한다.
varStatus : 현재 반복 상태 정보를 저장하는 변수를 정의한다. 이를 사용하면 현재 반복이 몇 번째인지 알 수 있다.(x 번째 글)

EL의 조건

EL은 java에 저장된 아무 변수의 값을 꺼내서 쓸 수 있는 것이 아니라 SCOPE에 저장된 값만 꺼내서 쓸 수 있다.(page, request, session, application)

<%
  pageContext.setAttribute("num",10) 
%>
  ${num} <!-- 10 -->
<%
  MemberDTO dto = new MemberDTO("pcw","1234","장구오빠","수리산")
   pageContext.setAttribute("dto",dto);
%>
  
<!-- page 스코프에 있는 dto의 id값을 웹페이지에 표현해보자! -->
${dto.id} <!-- pcw -->

EL을 사용하여 dto안에 있는 private 필드값을 가져오기 위해서는 반드시 getter메소드가 필요하다.

empty
EL에서는 없는 값을 입력해도 오류가 발생하지 않는다.

<!-- vo는 현재 비어있는 상태입니다 -->
${vo}

오류가 발생하지 않는다.

<!-- vo는 현재 비어있는 상태입니다 -->
${empty vo}

true로 반환한다.

스코프 영역

스코프 영역별 호출

<%
  pageContext.setAttribute("name","강호동")
  request.setAttribute("name","김흥국")
  session.setAttribute("name","김종국")
  application.setAttribute("name","송민호")
%>
${sessionScope.name} 

김종국을 출력하게 된다.

만약에 동일한 이름의 값이 여러 영역에 들어가있다면 EL은
page -> request -> session -> application 순서로 찾게된다.

profile
hello!

0개의 댓글