[jsp] JSTL 라이브러리 / EL 문

seulki·2022년 10월 25일
0

jsp

목록 보기
49/51
post-custom-banner

🎈 JSTL

  • JSP Standard Tag Library
  • 연산이나 조건문, 반복문을 편하게 처리할 수 있으며,
    JSP페이지 내에서 자바코드를 사용하지 않고도
    로직을 구현할 수 있도록 효율적인 방법 제시


🎈 JSTL 태그

  • <c:set />
    -> 변수 만들 때 사용
  • <c:out />
    -> 값을 출력 (EL문을 더 많이 쓴다.)
  • <c:if> </c:if>
    -> 조건 제어 (switch문)
  • <c:when> </c:when>
    -> 조건 제어 (case문)
  • <c:otherwise> </c:otherwise>
    -> 조건제어
  • <c:forEach> </c:forEach>
    -> 반복제어(for문)


🎈 JSTL 라이브러리 다운받기

  • 1.1.2 zip파일 다운로드

  • 라이브러리 이클립스에 추가하기



🎈 JSTL 라이브러리 사용하기

  • 선언문 추가하기
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • jstl_test.jsp
<%@ 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>
	<h2>JSTL TEST(변수)</h2>
	
	<!-- 변수선언, scope :  어느 범위까지 사용하는지, page : pageContext
		jstl로 만들어진 값은 setAttribute로 값을 넣기 때문에 el로 값을 가져올 수 있다.
	 -->
	<c:set var="userid" value="student" scope="page"/>
	회원아이디 <c:out value="${userid }" /><br>
	회원아이디 ${userid }</br>
</body>
</html>

  • jstl_test2.jsp
<%@ 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:set>이 사이에 들어가는 값이 value</c:set> --%>
	
	<c:set var = "userid" scope="session">자바학생</c:set>
	<c:set var = "userpw" scope="session">1234</c:set>
	
	아이디 : ${userid }</br>
	비밀번호 : ${userpw }</br>
	회원아이디 ${sessionScope.userid }<br>
	회원비밀번호 ${sessionScope.userpw }<br>
</body>
</html>

  • jstl_test3.jsp
<%@ 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>
	<h2>JSTL 제어 - 조건식</h2>
	<c:set var="num" value="100"/>
	<c:if test="${num gt 50 }">
		<script>
			alert("이 수는 50보다 크다.");
		</script>
	</c:if>
<c:if test="${num gt 30 }">
	<script>
		alert("이 수는 30보다 크다.");
	</script>
</c:if>

<hr>
choose문 사용 <br>
(if~else 문의 경우 jstl에서는 choose를 이용하여 구성한다.)<br>

<c:choose>
	<c:when test="${num gt 50 }">
		이 수는 50보다 크다!
	</c:when>
	<c:when test="${num gt 30 }">
		이 수는 30보다 크다!
	</c:when>
	<c:otherwise>
		이 수는 그 외의 숫자입니다.
	</c:otherwise>
</c:choose>
```

  • jstl_test4.jsp
<%@ 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>
	
	
<!-- 		요청 : http://localhost:8081/day10/jstl/jstl_test4.jsp?userid=&userpw= -->
<!-- 		조건 1. userid 값이 얼을 때 -> 아이디/비밀번호 입력화면 -->
<!-- 		조건 2. userid 값이 있을 때 ->  -->
<!-- 			조건 2-1. userid값이 admin이면, '관리자'출력 -->
<!-- 			조건 2-2. userid값이 java이면, '자바학생'출력 -->
<!-- 			조건 2-3. userid값이 그 외 값이면, '비회원'출력 -->
	 

	 <c:choose>
	 	<c:when test="${empty param.userid }">
			<form>
				아이디 <input type="text" name="userid"></br>
				비밀번호 <input type="text" name="userpw"><br>
				<input type="submit"></br>
			</form>
		</c:when>
		<c:otherwise>
			<c:set var="userid" value="${param.userid }"/>
			<c:set var="userpw" value="${param.userpw }"/>
			<c:choose>
				<c:when test="${userid == 'admin' }">관리자</c:when>
				<c:when test="${userid == 'java' }">자바학생</c:when>
				<c:otherwise>
					비회원
				</c:otherwise>
			</c:choose>
		</c:otherwise>
	 </c:choose>
	 
</body>
</html>


profile
웹 개발자 공부 중
post-custom-banner

0개의 댓글