액션 태그(Action Tag)
XML 형식으로 코드를 기술하는 문법.
액션 태그의 종류
1. 표준 액션 태그
include와 forward가 있음. bean 관련 태그(중요)
2. 커스텀 액션 태그
별도의 라이브러리를 설치(포함)해야만 사용할 수 있는 태그
(대표적으로 JSTL)
예) 표준 액션의 include
<jsp:include page="포함할페이지.jsp">
JSTL의 변수 선언(cnt라는 변수를 만들어서 0으로 초기화)
<c:set var="cnt" value="0">
JSTL(JSP Standard Tag Library)
웹 페이지 상에서 간단한 프로그램 제어를 처리하기 위한
태그 집합.
--------------------------------------------------------------
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
위 사이트 에서 jakarta-taglibs-standard-1.1.2.zip 을 활용
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSTL 기초</title>
</head>
<body>
<%-- 변수 선언 --%>
<c:set var="num1" value="100"/>
<c:set var="num2" value="200"/>
<%-- 조건 분기 처리 --%>
<c:if test="${num1 > num2}">
<p>num1이 크다</p>
</c:if>
<c:if test="${num1 < num2}">
<p>num2가 크다</p>
</c:if>
</body>
</html>
JSTL 구성
1. core(코어) - 변수 선언, 실행 흐름 제어용 태그들
2. format(형식지정) - 숫자, 날짜, 시간 등 출력 형식 지정
3. sql(데이터베이스) - DB의 데이터 입력/수정/삭제/조회 기능
4. xml - XML 문서 처리 기능
5. function(함수) - 문자열 처리 함수 제공
사용 형식
core -> c:if, c:forEach, c:set 등
format -> fmt:formatNumber 등
function -> fn:toUpperCase("hello") => HELLO
core 주요 태그
조건 처리 태그 : if, choose/when/otherwise
반복 처리 태그 : forEach, forTokens
예외 처리 태그 : catch
format 주요 태그
날짜 시간 지정 태그 : formatDate
수치 지정 태그 : formateNumber
<%@ 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="code" value="ep001" scope="request"/>
<c:set var="name" value="TV" scope="request"/>
<c:set var="price" value="1000000" scope="request"/>
<jsp:forward page="data_view.jsp"/>
data_in
에 임의의 상품데이터 입력
code : ep100
name : TV
price : 1000000
<%@ 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>제품정보</title>
</head>
<body>
<h2>제품 정보</h2>
제품 코드 : ${code}<br>
제품 명 : ${name}<br>
가격 : ${price}<br>
제품정보가 표출
데이터지우기
<title>제품정보</title>
</head>
<body>
<h2>제품 정보</h2>
<c:if test="${code == 'ep001'}">
<c:remove var="code"/>
</c:if>
제품 코드 : ${code}<br>
제품 명 : ${name}<br>
가격 : ${price}<br>
jstl 활용
<c:if test = "${code == 'ep001}"> : 만약 code가 ep001이라면
<c:remove var="code"/> : code를 지움(remover)
<title>제품정보</title>
</head>
<body>
<h2>제품 정보</h2>
<c:if test="${code == 'ep001'}">
<c:remove var="code"/>
</c:if>
<c:forEach begin="1" end="5">
제품 코드 : ${code}<br>
제품 명 : ${name}<br>
가격 : ${price}<br>
</c:forEach>
<c:forEach begin="1" end="5"> : forEach태그로 1로시작하여 5가될때까지 반복(java의 for문)
<c:forEach var="cnt" begin="1" end="10" step="2">
${cnt}
<c:if test="${cnt % 3 == 0}">
<br>
</c:if>
</c:forEach>
<c:forEach var="cnt" begin="1" end="10" step="2"> | forEach)1부터 10까지의 수 중 2번째 수마다 입력 |
${cnt} | cnt 변수 생성 |
<c:if test="${cnt % 3 == 0}"> | if)만약 3으로 나누었을때 나머지가 0인 수에서 |
<br> | 줄바꿈 |
</c:if> | if문 닫음 |
</c:forEach> | forEach문 닫음 |
<%
String arr[] = {"갈비탕", "돈까스", "비빔밥"};
pageContext.setAttribute("menu", arr);
%>
<ul>
<c:forEach var="m" items="${menu}">
<li>${m}</li>
</c:forEach>
</ul>
String arr[] = {"갈비탕", "돈까스", "비빔밥"}; | 갈비탕, 돈까스, 비빔밥 배열 생성 |
pageContext.setAttribute("menu", arr); | "menu" 변수에 배열(arr)타입으로 데이터 전송 |
<ul> | 목록타입 |
<c:forEach var="m" items="${menu}"> | forEach로 배열"menu"을 변수"m"으로 지정하여 반복 |
<li>${m}</li> | "m"에 목록배열을 입력 |
</c:forEach> </ul> |
forEach문 닫음 ul닫음 |
JSP - 날짜와 시간 (0) | 2020.06.13 |
---|---|
JSP - JSTL choose_ex(선택 예제) (0) | 2020.06.12 |
JSP - userBean_ex 회원정보 입력/수정 (0) | 2020.06.12 |
JSP - JSTL 서버에 데이터 전달2(회원정보입력) (0) | 2020.06.11 |
JSP - 서버에 데이터 전달(상품 정보 입력) (0) | 2020.06.11 |