gwooden_코린이

JSTL 자카르타 아파치 사용해보기 본문

JSP&Servlet

JSTL 자카르타 아파치 사용해보기

gwooden22 2023. 1. 26. 11:17
728x90

1. JSTL 자카르타 아파치 - JSP Standard Tag Library

 

Apache Taglibs - Apache Standard Taglib: JSP[tm] Standard Tag Library (JSTL) implementations

<!-- Copyright 1999-2011 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/

tomcat.apache.org


2. core 태그 - [ ] 대괄호 안에 있는 건 생략가능 의

  • <c:set> 태그 : 변수에 값을 설정
    • <c:set var="변수명" value="값" [scope="유효범위"]>
    • </c:set>
    • -----------------------------------
    • <c:set var="객체이름" value="<%=new 패키지명.클래스명()%>"/>
    • ex)<jsp:useBean id="num" class="com.gwooden.javabeans.NumberBean"/>
    • -----------------------------------
    • <c:set target="객체이름" property="프로퍼티이름" value="값"
    • ex) <jsp:setProperty property="*" name="num" value="qwer"/>
  • <c:remove> 태그 : 변수 제거
    • <c:remove var="삭제할 변수명" [scope="유효범위"]/>
      • 지울때 scope가 일치하지 않으면 다른걸로 인식해서 안지워짐
    • <c:if> 태그 : 자바 if랑 같은거 else가 없음 
      • <c:if test="조건식">
      • 조건식이 참일때 코드
      • </c:if>
    • <c:choose> else 부분까지 처리 가능
      •  <c:choose>
        • <c:when test ="조건식1">
        • 조건식1참코드
        • </cwhen>
        • <c:when test ="조건식2">
        • 조건식2참코드
        • </cwhen>
        • <c:otherwise>
        • 모두 거짓 코드
        • </c:otherwise>
      •  </c:choose>
    • <c:forEach> 태그 : 반복문
      • <c:forEach var="임시변수" items="배열">
      • 반복할 코드
      • </c:forEach>
    • <c:redirect> response.send
      • <c:redirect url=" 주소/경로 "></c:redirect>
    • <c:out> 태그 : 출력문
      • ${ } EL 언어가 더 편할수도...
      • <c:out value="값" [default="기본값"]/>
    • <c:catch> 태그 : try ~ catch랑 같은 것
      • <c:catch var="변수이름">
      • 예외 발생이 될 수도 있는 코드
      • </c:catch>

 

-유효범위 종류

  • page
  • request
  • session
  • application
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ 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>Insert title here</title>
</head>
<body>
	<c:out value="jstl test"/>
</body>
</html>

<%@ 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>
	<form method="get" action="ifResult.jsp">
		<h1>if 연습용</h1>
		<select name="colors">
			<option value="빨강">빨강</option>
			<option value="파랑">파랑</option>
			<option value="노랑">노랑</option>
		</select>
		<br>
		<h1>choose 연습용</h1>
		<select name="grade">
			<option value="1">1학년</option>
			<option value="2">2학년</option>
			<option value="3">3학년</option>
		</select>
		<input type="submit" value="전송">
	</form>
</body>
</html>
<%@ 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>Insert title here</title>
</head>
<body>
	<h1>if 결과</h1>
	<c:if test="${param.colors == '빨강'}">
		빨강을 선택<br>
	</c:if>
	<c:if test="${param.colors == '파랑'}">
		파랑을 선택<br>
	</c:if>
	<c:if test="${param.colors == '노랑'}">
		노랑을 선택<br>
	</c:if>
	
	<h1>choose 결과</h1>
	<c:choose>
		<c:when test="${param.grade == 1}">
			1학년 입니다.
		</c:when>
		<c:when test="${param.grade == 2}">
			2학년 입니다.
		</c:when>
		<c:otherwise>
			3학년 입니다.
		</c:otherwise>
	</c:choose>
</body>
</html>

문제

전송.jsp

 

<%@ 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>
	<form method="get" action="ageInfo.jsp">
		나이 : <input type="text" name="age">
		<input type="submit" value="전송">
	</form>
</body>
</html>
<%@ 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>Insert title here</title>
</head>
<body>
<h1>결과</h1>
	<c:choose>
		<c:when test="${param.age <= 100 && param.age >= 20}">
			성인
		</c:when>
		<c:when test="${param.age < 20 && param.age >= 17}">
			고딩
		</c:when>
		<c:when test="${param.age < 17 && param.age >= 14}">
			중딩
		</c:when>
		<c:when test="${param.age < 14 && param.age >= 8}">
			초딩
		</c:when>
		<c:when test="${param.age < 8 && param.age >= 0}">
			초딩
		</c:when>
		<c:otherwise>
			나이 초과 입력
		</c:otherwise>
	</c:choose>
</body>
</html>

<%@ 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>Insert title here</title>
</head>
<body>
	<%
		String[] langList = {"JAVA", "HTML", "CSS", "JSP"};
		pageContext.setAttribute("langList", langList);
	%>
	
	<c:forEach var="list" items="${langList}" varStatus="status">
		값 : ${list}<br>
		반복횟수 : ${status.count}<br>
		인덱스 : ${status.index}<br>
		first? : ${status.first}<br>
		last? : ${status.last}<br>
		<hr>
	</c:forEach>
	
	<c:forEach var="cnt" begin="1" end="10" step="2">
		${cnt}<br>
	</c:forEach>
	
	<c:redirect url=""></c:redirect>

</body>
</html>

<%@ 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>Insert title here</title>
</head>
<body>
	<c:set var="name" value="티모"/>
	이름(EL) : ${name} <br>
	이름(out) : <c:out value="${name}"/>
	
	<h1>name 삭제</h1>
	<c:remove var="name"/>
	이름(EL) : ${name} <br>
	이름(out) : <c:out value="${name}" default="이름없음"/><br>
	
	<h1>catch 구경</h1>
	<c:catch var="errmsg">
		에러 발생 전 <br>
		<%=10/0%>
		에러 발생 후<br>
	</c:catch>
	
	${errmsg}<br>
	<c:out value="${errmsg}" default="정상작동"/>
</body>
</html>
728x90
Comments