EL(Expression Language)
기존에 사용하던 자바 코드 블럭인 <%= %>를 ${ } 형식으로 더 간편하게 사용할 수 있도록 도와주는 것을 말한다.
<%= request.getAttribute("num") %>
기존에는 getAttribute를 사용해서 값을 꺼내고 <%= %> 태그를 사용해서 값을 출력했었다.
${num}
위의 코드와 같이 EL을 사용하면 값을 꺼내서 출력까지 한 번에 가능하다.
JSTL(JSP Standard Tag Library)
자신만의 태그를 추가할 수 있는 기능으로
사용하기 위해서 JSTL 메이븐 리포지토리가 필요하므로 아래의 사이트에서 jar 파일을 다운받아야 한다.
https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
그러고나서 JSP 파일 상단에 아래의 코드를 작성해주면
해당 uri를 대신해서 c(Core)라는 식별자를 사용할 수 있게 된다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL Core 라이브러리에 해당하는 태그들
1. <c:set></c:set> - 변수 설정하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="title" value="set 사용해보기"></c:set>
${title}
</body>
</html>
2. <c:out></c:out> - value 값 화면에 출력하기
<c:out value="출력하기"></c:out>
3. <c:remove></c:remove> - 변수 삭제하기
<c:set var="title" value="set 사용해보기"></c:set>
<c:remove var="title"/>
${title}
4. <c:catch></c:catch> - try-chatch 구문과 같은 역할 / <c:if></c:if> - if문과 같은 역할
<c:catch var="e">
<!-- 0으로 나누는 경우 예외가 발생 -->
<%
int num1 = 100;
int num2 = 0;
int result = num1/num2; // 0으로 나누는 경우
%>
결과는? <%=result %>
</c:catch>
<%-- null이 아니면 에러가 있다는 뜻 --%>
<c:if test="${e != null }">
<!-- 실제 에러처리 -->
에러메시지 : ${ e.message } </br>
</c:if>
5. <c:choose></c:choose>, <c:when></c:when>, <c:otherwise></c:otherwise>
- switch문과 같은 역할
<c:set var="weather" value="맑음" scope="page"/>
<c:choose>
<c:when test="${ weather =='맑음'}">
오늘 날씨는 ${ weather }입니다.
</c:when>
<c:when test="${ weather =='흐림'}">
오늘 날씨는 ${ weather }입니다.
</c:when>
<c:otherwise>
오늘 날씨는 맑지도 않고 흐리지도 않을 때 실행되는 문장!
</c:otherwise>
</c:choose>
만약에 weather가 눈일 때는 when에 걸리지 않기 때문에 otherwise에 걸리는 문장이 실행된다.
'국비 지원 > JSP와 Servlet' 카테고리의 다른 글
[JSP/Servlet] Forward와 Redirect의 차이점 그리고 PRG 패턴 (0) | 2023.06.18 |
---|---|
[JSP/Servlet] Request와 Response, GET 방식과 POST 방식 (0) | 2023.06.14 |
[JSP/Servlet] JSP와 Servlet은 무엇일까? (0) | 2023.06.12 |