230704 day62 개념 정리

Jin·2023년 9월 2일
0

codenotion

목록 보기
56/90
post-thumbnail

jsp 표준 태그 라이브러리

JSTL Jsp Standard Tag Library

(확장 태그여서 별도의 라이브러리 필요)

https://mvnrepository.com/

javax.servlet/jstl 검색 
첫번째 나온 검색 결과 클릭 
버전 1.2 클릭 
jar타입으로 다운 

다운로드 받은 후 jar파일을 
web-inf 폴더 - lib 폴더 안에 넣기
(오라클 드라이버 설치한 경로)


JSTL 사용하려는 jsp 파일에서는 taglib 지시어를 추가해야함 (접두어, uri)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


JSTL 5가지 태그 제공 

1. Core태그 
기능 : 변수 선언, 조건문/반복문, URL처리 
접두어 - c
URI : http://java.sun.com/jsp/jstl/core
<c:태그명></c:태그명>
<c:태그명 />

2. Formatting태그
기능 : 숫자, 날짜, 시간, 포맷 지정 
접두어 - fmt
URI : http://java.sun.com/jsp/jstl/fmt

3. XML태그
기능 : XML파싱 
접두어 - x
URI : http://java.sun.com/jsp/jstl/xml

4. Function태그
기능 : 컬렉션, 문자열 처리
접두어 - fm
URI : http://java.sun.com/jsp/jstl/functions

5. SQL태그 
기능 : 데이터베이스 연결 및 쿼리 실행 
접두어 - sql
URI : http://java.sun.com/jsp/jstl/sql




코어(Core) 태그 속성

set : jsp에서 사용될 변수 설정 
remove : 설정한 변수를 제거 
if : 조건에 따라 내부 코드 수행 
choose : 다중 조건을 처리할 때 사용 
forEach : 콜렉션이나 Map의 각 항목을 처리할 때 사용 
forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용 
import : URL을 사용하여 다른 자원의 결과를 삽입
redirect : 지정한 경로로 리다이렉트함 
url : URL을 재작성함 
catch : 인셉션 처리에 사용 
out : JspWriter에 내용을 알맞게 처리한 후 출력 




1)<c:set> 태그
변수나 자바빈스 생성 때 사용 (setAttribute()와 같은 역할)
<c:set var="변수명" value="" scope="영역" />
<c:set var="변수명" scope="영역">
	value 속성에 들어갈 값
</c:set>


<%
	Person person1 = new Person();
	request.setAttribute("person", person1)
%>
-------------------------------------------------------
<c:set var="person" value="<%new Person()%>" />


<c:set target="el" property="필드명" value="" />



2) <c:remove> 태그
<c:set> 지정한 변수를 제거할 때 사용 (removeAttribute()메소드와 같은 역할)

remove 태그 속성

var : 삭제할 변수명 설정 
scope : 삭제할 변수의 영역 지정, 지정하지 않으면 모든 영역의 변수가 삭제 



3) <c:if> 태그
자바의 if와 동일하게 제어 구문을 작성할 때 사용 
else가 별도로 없기 때문에 여러 조건을 나열하는 형태로 작성하기는 어려움 
<c:if test="조건" var="변수명" scope="영역">
	조건이 true일 때 출력될 문장
</c:if>



4) <c:choose>, <c:when>, <c:otherwise> 태그
<c:choose> 태그는 다중 조건을 통해 판단해야할 때 사용 
하위 태그로 <c:when>, <c:otherwise> 태그를 사용 

<c:choose>
	<c:when test="조건1"> 조건1을 만족하는 경우 </c:when>
	<c:when test="조건2"> 조건2을 만족하는 경우 </c:when>
	<c:otherwise test="조건1"> 아무 조건을 만족하지 않는 경우 </c:otherwise>
</c:choose>



5) <c:forEach> 태그 
반복을 위해 사용 

일반 for문 형식 
<c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값" />
for(int i=0; i<100; i++) {
	
}

향상된 for문 형식 
<c:forEach var="변수명" items="컬렉션 혹은 배열" />
for(String str: strList)


forEach 태그 속성 

var : 변수명 지정 
items : 반복을 위한 객체를 지정, 배렬, 컬렉션 등을 지정 (향상된 forEach)
begin : 시작값
end : 종료값
step : 증가할 값
varStatus : 루프의 현재 상태를 알려주는 변수의 이름을 지정 

varStatus를 통해 얻을 수 있는 값
current: var에 지정한 현재 루프의 변수값 반환
index : var에 지정한 현재 루프의 변수값 반환 (향상된 for문에서 사용)
count : 실제 반복횟수(1~마지막)
first : 루프의 처음일 때 true 반환
last : 루프의 마지막일 때 true 반환



6) <c:forTokens> 태그
구분자를 기준으로 문자열을 나눠 토큰의 갯수만큼 반복함
토큰 : 문법적으로 의미있는 최소단위

"사과, 딸기, 오렌지, 수박"

<c:forTokens items="문자열" delims="문자열 구분자" var="변수명" />


<%
	String fruits = "사과, 딸기, 오렌지, 수박";
%>

<c:forTokens items="<%=fruits%>" delims="," var="fru">
	<p>%{fru}</p>
</c:forTokens>



7) <c:import> 태그
<jsp:include> 액션 태그와 같이 외부 파일을 현재 위치에 삽입할 때 사용

<c:import url="페이지 경로" />

<c:import url="페이지 경로" var="변수명" />
${변수명}



8) <c:redirect> 태그
내장객체 response의 sendRedirect()와 동일하게 
페이지 이동을 처리할 때 사용 

<c:redirect url="이동할 경로?userParam1=aaa&userParam2=bbb" />

or

<c:redirect url="../inc/otherpage.jsp">
	<c:param name="userParam1" value="aaa" />
	<c:param name="userParam2" value="bbb" />
</c:redirect>



9) <c:url> 태그
지정한 경로와 매개변수를 이용해 url 생성 
<a>의 href 속성이나 <form> 태그의 action 속성에 사용할 수 있음 

<c:url value="설정한 경로" />

<c:url value="설정한 경로" var="변수명" />
${변수명}



10) <c:out> 태그 
jsp의 표현식처럼 변수를 출력할 때 사용 
<c:out value="출력할 변수" default="기본값" escapeXml="특수문자처리유무 />"

출력할 변수가 null일  default 속성에 지정한 기본값이 출력 
escapeXml true로 지정하면 html 태그를 자유롭게 사용 가능 



11) <c:catch> 태그
발생할 예외를 잡아 처리하는 역할 
예외가 발생하면 지정된 변수에 에럽 메시지가 저장되어 전달됨 

<c:catch var="변수명">
실행코드
</c:catch>

profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글