JSP 스크립트의 문제점을 보완 가독성을 향상시키고 스크립트에서 자바의 사용을 최소화 할 수 있습니다.
먼저 jar파일을 다운로드후 프로젝트 라이브러리에 추가시켜 사용합니다.
JSTL도 크게 5개로 나뉩니다. 우리는 주로 기본적인 c에 대해서 알아보도록 하겠습니다.
필요한 게 있으시면 찾아서 쓰시면 됩니다.
코어 : 자바 변수 지원 , 흐름 제어 , URL처리
XML : xml 처리 , xml 흐름제어
국제화 : 국제화처리, 메시지 관리
SQL : 데이터베이스 접근 및 처리
함수(function) : 문자열 처리, 컬렉션 처리
라이브러리 | 접두어 | URI |
코어(Core) | c | http://java.sun.com/jsp/jstl/core |
XML | x | http://java.sun.com/jsp/jstl/xml |
국제화 | fmt | http://java.sun.com/jsp/jstl/fmt |
SQL | sql | http://java.sun.com/jsp/jstl/sql |
함수(functions) | fn | http://java.sun.com/jsp/jstl/functions |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix = "x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix = "sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix = "fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="jum" value="99"/> <!-- 변수를 선언합니다. -->
<c:remove var="jum"/> <!-- 변수를 지웁니다. -->
<c:set var="jum" value="0"/>
<c:if test="${jum <= 100}">
jum = ${jum}<br>
</c:if>
<c:catch var="errmsg">
<%= 99 / 0 %>
</c:catch>
<c:out value="${errmsg}"/><br>
<c:choose>
<c:when test="${jum>=90}">
<c:set var="grd" value="A"/>
<c:out value="${grd}"/><br>
</c:when>
<c:when test="${jum>=80}">
<c:set var="grd" value="B"/>
<c:out value="${grd}"/><br>
</c:when>
<c:otherwise>
<c:set var="grd" value="씨뿌리기!!"/>
<c:out value="${grd}"/><br>
</c:otherwise>
</c:choose>
<c:forEach var="i" begin="1" end="10" step="${i = i + 1}">
<c:set var="sum" value="${sum = sum + i}"/>
</c:forEach>
<c:forTokens var="msg" items="JSTL program test!" delims=" ">
${msg} <br>
</c:forTokens>
<c:redirect url="./EL_form_request.jsp">
<c:param name="para" value="massage"/>
</c:redirect>
</body>
</html>
<%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix = "x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix = "sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix = "fn" uri="http://java.sun.com/jsp/jstl/functions"%>
이런식으로 선언해주면 사용이 가능합니다. 왜 다 적었냐면 그냥 어떻게 쓰는지 알려주려고 그랬습니다.
<c:set 변수타입 = "변수명" value = "변수값">
<c:set var="jum" value="99"/>
변수를 선언합니다.
<c:remove 변수타입 =" 변수명"/>
<c:remove var="jum"/>
변수를 제거합니다.
<c:if test="${조건문}">
<c:if test="${jum <= 100}">
if문입니다.
<c:catch 변수타입="변수명">
<c:catch var="errmsg">
예외 메세지를 받아주는 변수타입과 변수명을 설정해주고 try catch처럼 예외를 잡아줍니다.
<cout: value="출력할 것">
<c:out value="${errmsg}"/>
출력문입니다.
<c:choose>
switch문입니다.
<c:when test="${조건문}">
<c:when test="${jum>=90}">
case문입니다.
<c:otherwise>
default문 입니다.
- 형태 1 -
<c:forEach 반복자변수타입="반복자변수명" begin="반복자초기값" end="반복자끝값" step="${증가값"}>
<c:forEach var="i" begin="1" end="10" step="${i = i + 1}">
for문입니다. 이걸 자바의 for문으로 바꾸면 이와 같다
for(var i = 1 ; i <= 10 ; i++)
- 형태 2 -
<c:forEach items="${books}" var="book" varStatus="status">
${status.current}
${status.index}
${status.count}
${status.begin}
${status.end}
${status.step}
</c:forEach>
items : 배열명
begin : 반복문의 시작값을 설정
end : 반복문의 종료값을 설정
step : 반복문의 증가값을 설정
var : 배열의 인덱스
varStatus : 변수의 상태를 담을 변수를 설정
${status.current} : 현재 인덱스
${status.index} : 0부터의 순서
${status.count} : 1부터의 순서
${status.begin} : 시작값
${status.end} : 끝값
${status.step} : 증가값
<c:forTokens 토큰내용이들어갈 변수타입=변수명 items="내용" delims="구분자">
<c:forTokens var="msg" items="JSTL program test!" delims=" ">
내용을 구분자로 나눠서 변수명(msg)에 들어가게 됩니다.
<c:redirect url="연결 할 곳">
<c:redirect url="./EL_form_request.jsp">
redirect와 동일합니다.
<c:param name="속성명" value="속성값">
<c:param name="para" value="massage"/>
jsp:param과 동일합니다.
'[Java] > [JSP, Servlet]' 카테고리의 다른 글
[JSP, Servlet] JSP 및 부트스트랩, 제이쿼리 및 인코딩 기본설정 (0) | 2022.03.12 |
---|---|
[JSP, Servlet] html파일을 jsp 변환시 깨짐 방지하는 방법 (0) | 2021.10.24 |
[JSP, Servlet] EL(표현 언어) (0) | 2021.08.09 |
[JSP, Servlet] DB연결 (JDBC, ResultSet, executeQuery, executeUpdate) (0) | 2021.07.30 |
[JSP, Servlet] 자바빈 (0) | 2021.07.30 |