[Back-End] JSTL & EL 표현식

SHINYEJI·2023년 9월 20일
0

Back-End

목록 보기
19/24

🚩 JSTL

JSP Standard Tag Library

jstl maven driver 다운로드

자바 문법 사용

JSTL/EL의 for, if문 등의 코드를 사용할 때 import를 해야한다.

  • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 접두사 c로 해당 uri를 사용하것다는 의미

application
response
request
session을 사용할 수 없다
단, pageContext만 사용 가능

	<c:forEach var="country" items="${list}">
		
    </c:forEach>

${pageContext.request.contextPath}

자바 코드를 사용하지 않고 전부 태그로 대체하여 import할 것이 없어진다.

scope는 생략이 가능하다.

우선순위

pageScope > requestScope > sessionScope > applicationScope

JSP와 JSTL/EL 표현식 코드 비교

  • JSP 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*, com.ssafy.Country"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>나라 상세 조회</h1>
    <a href="<%= request.getContextPath() %>/country?action=list">목록으로</a>
    <table>
        <tr>
            <th>나라코드</th>
            <th>국가명</th>
            <th>대륙</th>
            <th>GNP</th>
        </tr>
        <tr>
       	<% 
        	Country country = (Country)request.getAttribute("country"); 
        %>
        <tr>
            <td><%=country.getCode()%></td>
            <td><%=country.getName()%></td>
            <td><%=country.getContinent()%></td>
            <td><%=country.getGnp()%></td>
        </tr>
        </tr>
    </table>
    <a href="<%= request.getContextPath()%>/country?action=mvUpdate&code=<%=country.getCode()%>">수정화면 이동</a>
    <button type ="button" onclick="deleteCountry()"> 삭제</button>
    <script>
    	function deleteCountry(){
    		console.log("삭제 메소드 실행");
    		location.href="<%= request.getContextPath()%>/country?action=delete&code=<%=country.getCode()%>"
    	}
    </script>
</body>
</html>
  • jstl/el 표현식을 사용한 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>나라 목록 조회</h1>
    <table>
        <tr>
            <th>나라코드</th>
            <th>국가명</th>
            <th>대륙</th>
            <th>GNP</th>
        </tr>
        <c:forEach var="country" items="${requestScope.list}">
        <tr>
            <td>${country.code}</td>
            <td><a href="${pageContext.request.contextPath}/country?action=view&code=${country.code}">${country.name}</a></td>
            <td>${country.continent}</td>
            <td>${country.gnp}</td>
        </tr>
		</c:forEach>
    </table>
</body>
</html>

0개의 댓글