2021. 5. 5. 08:43ㆍJSP 공부
이번에는 JSTL 에 대해서 알아봅시다.
JSTL
JSTL(JSP Standard Tag Library) 는, JSP에서 java 와 html 이 같이 사용되어 전체적인 코드의 가독성이 떨어지는 것을 보완하기 위해 만들어졌습니다.
JSTL 을 사용하면, 자바의 제어문 반복문 등을 html 태그화 시킬 수 있습니다.
다운로드
JSTL 을 사용하려면, 저희가 사용하는 Tomcat의 기본 컨테이너에 포함되어 있지 않기 때문에, 별도의 라이브러리를 다운로드 받아서 사용해야 합니다.
아래의 링크에서 원하는 버전을 다운로드 받으면 됩니다.
tomcat.apache.org/taglibs/standard/
저희는 Standard 1.1 버전을 사용할 거구요, 아래와 같이 빨간색 박스의 다운로드를 클릭 해주세요
클릭하면 아래와 같은 화면이 나오는데, 빨간색 박스의 binaries/ 를 클릭 해주세요
아래로 쭈욱 내려보면, 가장 최신 버전 2004-10-25 일에 올라온 1.1.2.zip 을 다운로드 받아 줍니다
다운로드를 받으면, 압축파일 미리보기를 한 후 lib 폴더 안에 있는 .jar 파일만 JSP 프로젝트에 옮겨 주면 됩니다
※ 현재 프로젝트는 jdbc (데이터베이스) 도 같이 사용해서 ojdbc8.jar 파일도 있습니다.
사용법
JSTL 을 사용하기 위해서는, 아래의 코드를 맨 위<%@ page %> 아래에 작성해 줍니다.
해당 코드를 작성하셨다면, 아래의 태그들을 사용할 수 있는데, 역시나 전부 알 필요는 없고 몇 가지만 알아두면 됩니다.
※ 추가로 종속되는 태그가 없다면 마지막을 "/" 으로 표시합니다.
먼저, 변수는 <c:set> 태그를 사용합니다.
변수의 출력은 <c:out> 태그를 사용합니다. ( 이 때, EL 을 사용합니다 )
조건문 if는 <c:if> 태그를 사용합니다. ( test 에는 조건이 들어 갑니다 )
조건문 if else는 <c:choose> 태그를 사용합니다.
<c:choose> 태그 속에서, 조건은 <c:when test="조건"> , else는 <c:otherwise> 를 사용합니다.
반복문 for문은 <c:forEach> 를 사용합니다.
- <c:forEach items="객체명" begin="시작값" end="끝 값" step="증감값" var="변수명">
var는 제어변수의 선언, begin은 시작값, end는 끝 값 입니다.
향상된 for문은 아래와 같이 사용할 수 있습니다.
var 에는 배열의 값이 차례대로 대입 됩니다.
items 는 배열의 이름을 넣어 줍니다.
varStatus 는 생략가능하며, for문의 상태값(인덱스)를 확인 할 수 있습니다.
i는, 배열 arr2의 값을 꺼내오게 되고, s는 for문의 상태값(인덱스)를 확인 합니다.
향상된 for문을 이용해서 list 에 들어 있는 값도 아래와 같이 사용할 수 있습니다.
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
//request에 setAttr로 저장
request.setAttribute("list", list);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="i" items="${list }">
${i }
</c:forEach>
</body>
</html>
해당 코드를 맨 위에 작성하게 되면, formatNumber, formatDate, parseNumber, parseDate 를 쓸 수 있게 됩니다.
format 은 형식을 바꿔 주며, parse 는 형반환을 해줍니다.
<fmt:formatNumber var="사용힐 변수명" value="값" pattern="형식">
0은 자리수를 나타냅니다.
<fmt:formatDate var="사용할 변수명" value="값" pattern="형식">
formatDate 를 사용할 때는, value에 꼭 날짜의 형식이 들어가야 합니다 ex) Date() , Timestamp()
<fmt:parseNumber var="사용할 변수명" value="값" pattern="형식">
parseNumber는 형변환을 해주기 때문에, 연산을 수행할 수 있으며 value 에 숫자와 문자가 섞여 있다면, 숫자만 반환해 줍니다. ( 숫자가 없다면 에러 )
<fmt:parseDate var="사용할 변수명" value="값" pattern="형식">
parseDate는, 문자로 된 날짜 형식을, 날짜 형식으로 형을 반환해 줍니다.
parseDate는, 기존 문자로 된 날짜 형식을 날짜 형식으로 형을 반환할 때, 문자와 똑같이 사용해주어야 합니다.
그래서, 날짜 형식으로 형반환 후 원하는 형태로 변경하는 formatDate 와 같이 사용하게 됩니다.
예제.
오늘은 이렇게, JSTL 에 대해서 알아 보았습니다.
고생하셨습니다
'JSP 공부' 카테고리의 다른 글
Day57 - [JSP]URL패턴 , MVC2 전체적인 컴포넌트 설계 (0) | 2021.05.06 |
---|---|
Day56 - [JSP]연결풀(Connection pool) (0) | 2021.05.05 |
Day56 - [JSP]EL (0) | 2021.05.05 |
Day55 - [JSP]MVC1 전체적인 컴포넌트 설계 (0) | 2021.05.03 |
Day55 - [JSP]DAO클래스와 VO클래스 (0) | 2021.05.03 |