반응형

 

 

 

 

 

 

 

 

1. JSTL이란?

  • JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줍니다.
  • for 웹디자이너
  • 자바 코드를 없애고 html 형태로 작성한다.

 

 

 

2. JSTL을 사용하려면?

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts