반응형
1. JSTL이란?
- JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줍니다.
- for 웹디자이너
- 자바 코드를 없애고 html 형태로 작성한다.
2. JSTL을 사용하려면?
- http://tomcat.apache.org/download-taglibs.cgi
- 위의 사이트에서 3가지 jar파일을 다운로드 한 후 WEB-INF/lib/ 폴더에 복사를 한다.
- Impl, Spec, EL
3. JSTL이 제공하는 태그의 종류
4. 코어 태그
5. 코어 태그: 변수 지원 태그 - set, remove
5 -1). 코어 태그 : 실습
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="value1" scope="request" value="song"></c:set>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
성 : ${value1 }<br />
<c:remove var="value1" scope="request"/>
성 : ${value1 }<br />
</body>
</html>
jstl01.jsp
5 -2). 코어태그: 변수 지원 태그 - 프로퍼티, 맵의 처리
5 -3). 코어 태그: 흐름제어 태그
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setAttribute("score", 83);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test="${score >= 90 }">
A학점입니다.
</c:when>
<c:when test="${score >= 80 }">
B학점입니다.
</c:when>
<c:when test="${score >= 70 }">
C학점입니다.
</c:when>
<c:when test="${score >= 60 }">
D학점입니다.
</c:when>
<c:otherwise>
F학점입니다.
</c:otherwise>
</c:choose>
</body>
</html>
jstl03.jsp
-> choose, when, otherwise는 if / else 와 똑같은 기능을 한다.
5 -4). 코어 태그: 흐름제어 태그 - forEach
실습
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("!!!!!");
request.setAttribute("list", list);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="item" items="${list }" begin="1" >
${item } <br />
</c:forEach>
</body>
</html>
jstl04.jsp
-> 인덱스가 1부터 시작하기 때문에 두 번째 리스트값부터 출력한다.
5 -5) 코어 태그: 흐름제어태그 - import
실습
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello World !!! <br />
jstlValue.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:import url="http://localhost:8080/JSTL_example/jstlValue.jsp" var="urlValue" scope="request"></c:import>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${urlValue }
</body>
</html>
jstl05.jsp
-> jstlValue.jsp 에 있는 내용이 jstl05.jsp 에서 출력된다.
5 -6) 코어 태그: 흐름제어태그 - redirect
5 -7) 코어 태그: 기타태그 - out
실습
<%@ 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>
<c:set var="t" value="<script type='text/javascript'>alert(1);</script>" />
<c:out value="${t }" escapeXml="true"/>
<c:out value="${t }" escapeXml="false"/>
</body>
</html>
jstl07.jsp
반응형
'Programming > JSP & Servlet & Mysql' 카테고리의 다른 글
mysql 1) mac에서 mysql 접속하기 (0) | 2020.12.16 |
---|---|
부스트캠프 7) Web API (0) | 2020.12.16 |
부스트캠프 5) EL(Expression Language) (0) | 2020.12.15 |
부스트캠프 4) 4가지 Scope (0) | 2020.12.14 |
부스트캠프 3) 서블릿과 JSP 연동 (0) | 2020.12.14 |