JSP Standard Tag Library
JSTL/EL의 for, if문 등의 코드를 사용할 때 import를 해야한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
application
response
request
session을 사용할 수 없다
단, pageContext만 사용 가능
<c:forEach var="country" items="${list}">
</c:forEach>
${pageContext.request.contextPath}
자바 코드를 사용하지 않고 전부 태그로 대체하여 import할 것이 없어진다.
scope는 생략이 가능하다.
pageScope > requestScope > sessionScope > applicationScope
- 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>