방카@Dev
[JSP]JSTL(Jsp Standard Tag Library) CORE 태그 본문
➡️JSTL 태그 종류
종류 | 기능 | 접두어 | URI |
Core 태그 | 변수 선언, 조건문/반복문, URL 처리 | c | jakarta.tags.core |
Formatting 태그 | 숫자, 날짜, 시간 포맷 지정 | fmt | jakarta.tags.fmt |
XML 태그 | XML 파싱 | x | jakarta.tags.xml |
Function 태그 | 컬렉션, 문자열 처리 | fn | jakarta.tags.functions |
SQL 태그 | 데이터베이스 연결 및 쿼리실행 | sql | jakarta.tags.sql |
➡️ CORE 태그 종류
//지시어
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
//톰캣 9.0 이하의 경우
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
태그명 | 기능 |
set | 변수 설정 |
remove | 변수 제거 |
if | 단일 조건문 처리(else 없음) |
choose | 다중 조건을 처리(하위에 when~otherwise 태그) |
forEach | 반복문 처리 |
forTokens | 구분자로 분리된 각각의 토큰 처리 |
import | 외부 페이지를 삽입 |
redirect | 지정한 경로로 이동 |
url | 경로 설정 |
out | 내용 출력 |
catch | 예외 처리 |
1. set : 변수설정
<c:set var="변수명" value="값" scope="영역"/>
※ 객체 설정 시
<c:set var="변수명" value="저장할 객체 혹은 컬렉션" scope="영역"/>
<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값">
➡️ 예시
<c:set value="Hello World" var="msg"/>
msg : ${msg}
2.remove : 변수 제거
<c:remove var="변수명" scope="영역"/>
➡️ 예시
<c:set value="batman" var="msg"/>
msg: <c:out value="${msg}"/><br>
msg: ${msg}<br>
<c:remove var="msg"/>
after remove : <c:out value="${msg}"/>
3.if : 단일 조건문 처리
<c:if test="조건" var="변수명" scope="영역">
조건이 true일 때 출력할 문장
</c:if>
➡️ 예시
<c:set value = "superman" var = "msg"/>
msg : ${msg} <br>
<c:if test="${msg=='superman'}" var="result">
test result : ${result}
</c:if>
4.choose : 다중 조건 처리
<c:choose>
<c:when test="조건1">조건1을 만족하는 경우</c:when>
<c:when test="조건2">조건2을 만족하는 경우</c:when>
<c:otherwise>아무 조건도 만족하지 않는 경우</c:otherwise>
</c:choose>
<form>
<select name = "sel">
<option>-</option>
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
</select>
<input type="submit" value="선택"/>
</form>
<hr>
<c:choose>
<c:when test="${param.sel=='a'}">
a를 선택
</c:when>
<c:when test="${param.sel=='b'}">
b를 선택
</c:when>
<c:when test="${param.sel=='c'}">
c를 선택
</c:when>
<c:otherwise>
a,b,c 이외의 것을 선택
</c:otherwise>
</c:choose>
5.forEach : 반복문 처리
//일반 for문 형태
<c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값"/>
//향상된 for문 형태
<c:forEach var="변수명" items="컬렉션 혹은 배열"/>
for (int number : numbers){....}
➡️ 예시
<form name=form1 method="post" action="../EL2/Sel.jsp">
<jsp:useBean id="eltest" class="el.test.Eltest" scope="session"/>
<select name="sel">
<c:forEach items="${eltest.productList}" var="item">
<option>${item}</option>
</c:forEach>
</select>
<input type="submit" value="선택"/>
</form>
6.forTokens : 구분자로 분리된 각각의 토큰 처리
<c:forTokens items="문자열" delims="문자열 구분자" var="변수명"/>
<c:forTokens items="123-456-789" delims="-" var="sel">
${sel}<br>
</c:forTokens>
7.import : 외부 페이지를 삽입
<c:import url="페이지 경로 혹은 URL" scope="영역"/>
<c:import url="페이지 경로 혹은 URL" var="변수명" scope="영역"/>
${ 변수명 }
<c:import url="페이지 경로 혹은 URL?매개변수1=값1">
<c:param name="매개변수2" value="값2"/>
<c:import>
➡️ 예시
<c:import url="set.jsp" var="myurl"/>
<c:out value="${myurl}" escapeXml="false"/>
8.redirect : 지정한 경로로 이동
<c:redirect url="choose.jsp">
<c:param name="sel">a</c:param>
</c:redirect>
9.url : 경로 설정
<c:url value="choose.jsp" var="target">
<c:param name="sel">a</c:param>
</c:url>
<hr>
단순출력 : ${target} <BR>
링크연동 : <a href="${target}">choose.jsp-a 선택</a>
10.out : 내용 출력
<c:out value="출력할 변수" default="기본값" escapeXml="특수문자 처리 유무"/>
<c:out value="${msg}"/>
11.catch : 예외 처리
<c:catch var="errMsg">
<%=9/0 %>
</c:catch>
'BackEnd > JSP' 카테고리의 다른 글
[JSP]영역 객체(Scope) (0) | 2024.05.17 |
---|---|
[JSP] Java Beans (0) | 2024.05.16 |
[JSP]MVC Pattern2_게시판 CRUD 기능 (0) | 2024.05.09 |