221202 JSTL
JSTL(JSP Standard Tag Library)
/*
자바에도 없고, 톰캣에도 없다. 설치가 필요
https://jakarta.apache.org/로 이동
->Taglib
->2014/01/02 standard
->1.2가 최상버전인데 1.1로 다운
->binaries/
->zip버전. jakarta-taglibs-standard-1.1.2.zip
->다운받아서 lib폴더
->standard.jar과 jstl.jar
->이클립스 WEB-INF의 lib폴더에 넣으면 된다
*/
JSTL구문을 쓸 화면에서는 어떤 라이브러리의 종류를 사용할 것인지 선언문이 필요하다.
Core - 제어문 prefix: c
Formatting - 형변환 prefix : fmt
선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
uri-해당 라이브러리의 식별자의 이름
prefix : 태그의 이름
사용은 <c: 로.
<c:out 은 출력
<c:set 은 변수선언
<c:remove 는 변수제거
<c:if 조건처리
<c:choose 다중조건처리
<c:when 조건에 맞을 때
<c:otherwise 맞는조건이 없을 때
<c:forEach 반복문
등등
when과 otherwise는 choose의 자식구문. switch나 else if를 대체하는 태그
<c:out value="출력값">을 하면 출력됨.
<c:set var="변수명" value="설정값" scope="범위">
<c:remove var="변수명" scope="범위">
<c:if test="조건식">
<c:forEach items="객체명" begin="시작값" end="끝 값" step="증감식" var="변수명">
var는 포문의 int i와 같다.
<c:choose>
<c:when test="조건식"> 처리 내용 </c:when>
<c:when test="조건식"> 처리 내용 </c:when>
<c:otherwise> 처리 내용 </c:otherwise>
</c:choose>
jstl_form
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>if절 확인하기</h3>
<form action="jstl_if.jsp">
이름:<input type="text" name="name"><br>
나이:<input type="text" name="age"><br>
<input type="submit" value="확인"><br>
</form>
<h3>choose절 확인하기</h3>
<form action="jstl_choose.jsp">
이름:<input type="text" name="name"><br>
나이:<input type="text" name="age"><br>
<input type="submit" value="확인"><br>
</form>
</body>
</html>
form은 여러개 만들 수 있다
submit을 어떤 걸 누르느냐에 따라 다른 페이지로 이동한다.
jstl_if
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 태그를 혼자 쓸 거면 마지막에 /를 넣어주면 됨 -->
<%--출력문 --%>
<c:out value="${param.name }"/>
<%--변수로 선언 --%>
<c:set var="num" value="${param.age }"/>
<c:out value="${num }"/>
<hr/>
<%--if문 --%>
<%if(request.getParameter("name").equals("홍")){ %>
<% }%>
<c:if test="${param.name eq '홍'}">
<h3>홍 입니다</h3>
</c:if>
<c:if test="${num >= 20 }">
<h3>성인 입니다</h3>
</c:if>
<c:if test="${num < 20 }">
<h3>미성년자 입니다</h3>
</c:if>
</body>
</html>
jstl_choose
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test="${param.name eq '홍길동' }">
<h3>홍길동</h3>
</c:when>
<c:when test="${param.name eq '이순신' }">
<h3>이순신</h3>
</c:when>
<c:otherwise>
<h3>둘다아님</h3>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${param.age >= 20 }">
<h3>성인 입니다</h3>
</c:when>
<c:otherwise>
<h3>미성년자 입니다</h3>
</c:otherwise>
</c:choose>
</body>
</html>
when과 otherwise는 choose의 자식구문이다. 항상 같이 사용
JSTL을 쓸 때 EL태그를 자주 사용한다. 알아둘 것. 상황에 따라 <%자바코드%>를 가져와야 할 때도 있다.