JSP

[JSP] EL 표현식

devlog93 2025. 2. 23. 21:58

 

JSP 에서 게시판 목록을 출력하려고 하는데...
EL(Expression Language)를 사용하여 출력하였어요.
이참에 정리를 해두려고한다. JSTL도 같이 사용하였는데 우선 EL에 대해서 간략하게 알아보자~~~

JSP에서EL은 request, session, application
같은 스코프 내 객체를 보다 간결하게 접근하고, 출력할 수 있도록 도와주는 표현식입니다.

 

* EL을 사용하면 

request.getParameter("name")같은 긴 표현식 대신에
${param.name} 과 같은 형태로 간단하게 값을 가져올 수 있습니다.

 

EL(Expression Language) 개요로는

    • JSP 내에서 변수 접근 ( request, session 등등..)
    • 객체 프로퍼티(Property) 접근 (Getter 메서드 호출 없이 필드 접근 가능)
    • 배열, List, Map 등의 데이터 접근
    • 산술 연산, 비교 연산, 논리 연산 지원
    • 기본 제공 객체 (param, sessionScope 등) 활용이 가능

*기존 방식

<%
	String name = "홍길동";
    out.println(name);
%>

 

 

* Controller에서 ModelAndView를 통해 JSP로 넘겨줌.

@RequestMapping(value="/BoardList.do")
public ModelAndView openBoardList(Map<String, Object> map) throws Exception {
    ModelAndView mv = new ModelAndView("/boardList");
    List<Map<String, Object>> list = sampleService.selectBoardList(map);

    mv.addObject("list", list);

    return mv;
}

 

 

 

* EL 방식 JSP사용 (JSTL 함께 사용)

<c:choose>
    <c:when test="${fn:length(list) > 0}">
        <c:forEach items="${list }" var="row">
            <tr>
                <td>${row.IDX }</td>
                <td>${row.TITLE }</td>
                <td>${row.HIT_CNT }</td>
                <td>${row.CREA_DTM }</td>
            </tr>
        </c:forEach>
    </c:when>
    <c:otherwise>
        <tr>
            <td colspan="4">조회된 결과가 없습니다.</td>
        </tr>
    </c:otherwise>
</c:choose>

 

JSTL의 <c:when> 태그 안에서 EL을 활용해 사용할 수 있다!!!

llist데이터를 하나씩 row라는 변수에 담아서 tr태그를 반복 출력하는 소스입니다.
저런식으로도 사용할 수 있고  대략 정리를 해보겠습니다

 

  • c:choose: java의 if-else 문처럼 조건을 나눌때 사용하고
  • c:when: 조건이 참일 경우 실행되는 블록입니다.
  • fn:length(list): 리스트의 크기를 구합니다.
  • c:forEach: 리스트의 데이터를 하나씩 반복하면서 출력합니다.
  • c:otherwise: c:when의 조건이 모두 거짓을 경우 실행되는 블록입니다.
  • ${row.필드명}:  EL을 사용해 Map<String, Object> 데이터의 값을 출력합니다.

 

그러면 위의 openBoardList.do 컨트롤러에서 받은 list 데이터를 활용하여
JSP에서 동적으로 게시판 목록을 출력할 수 있습니다.

EL에 대해 그냥 사용하기만 해봤지 직접 이렇게 하나씩 찾아가며 정리를 해보니 이해가 가는 거 같습니다...

음...........

JSTL은 다음에 다뤄 볼께요ㅜㅜㅜㅜㅜ

잘못된 내용 피드백 환영입니다!!!미리 감사하겠습니다(_ _)