Eggs Sunny Side Up
본문 바로가기
Web/JSP_Servlet

EL과 JSTL

by guswn100059 2023. 5. 4.
<%@ 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>
	<%--
		JSP 주석
		JSP가 Servlet으로 변환될 때, 무시하고 진행
		
		1. EL(표현언어) : HTML 코드 내에서만 연산이 가능하다.
						서버상에 저장된 데이터를 출력시킬 때 
						Java 변수는 출력할 수 없다.
						
						pageContext, request, session, application
						모두 확인하고, 이름에 맞는 데이터를 꺼내온다.
						(중복된 이름이 있는 경우 더 작은 scope걸 가져온다.)
						
						우리가 특정 scope에서 데이터를 꺼내고 싶으면 앞에
						~~scope.name 형식으로 scope를 명시
						pageContext에서 데이터를 꺼낼 때는 pageScope.name
						
						전송받은 파라미터가 있는 경우 param 영역에서 이름으로 꺼내오면된다.
						param.name
		${name}
		
		
		
		
		
	 --%>
	 
	 <%
	 	pageContext.setAttribute("b", 50);
	 	session.setAttribute("b", 100);
	 	request.setAttribute("b", 60);
	 %>
	 <h1>${sessionScope.b + 100}</h1>
	 <h1>${empty sessionScope.b}</h1>
	 <h1>${param.data + 50}</h1>
	 
	 
	 <%
	 	int a = (int)pageContext.getAttribute("b");
	 	String data = request.getParameter("data");
	 %>
	 <h1><%=a %></h1>
	 <h1><%=data + 50%></h1>
	 
	 <hr>
	 
	 <%--
	 	2. JSTL : java에서 자주 사용하는 메소드/문법을 태그화 시켜놓은
	 			  커스텀 태그 라이브러리
	 			  <% for %> => <forEach>
	 			  
	 			  주의! 라이브러리 종류가 여러가지
	 			  core => java 문법
	 			  fmt => 문자열 포맷팅
	 			  fuctions => 자바에서 많이 쓰는 메소드
	 			  ...
	 			  이 중에서 사용하고싶은 라이브러리를 taglib 지시자를 통해 선언해야함.
	  --%>
	 
	 <%--c:set => scope.setAttribute("name", "이베리코 목살"); --%>
	 <c:set var="name" value="항정살" scope="request"></c:set>
	 <h4>${requestScope.name}</h4>
	 
	 <%-- if문
		만약에 이름이 "이베리코 목살"이라면 '안녕하세요' 출력
		
		test : 조건식
		
		<%if(name.equals("이베리코 목살")){ %>
			<h4>안녕하세요.</h4>
		<%} %>
	  --%>
	  <c:if test="${name eq '이베리코 목살'}">
	  	<h4>맛있엉</h4>
	  </c:if>
	  
	  <c:if test="${! (name eq '이베리코 목살')}">
	  	<h4>별루야</h4>
	  </c:if>
	  
	  <%-- for문
	  		1) for문 : 10번 박본
	  		for(int i=0; i<10; i++){
	  			pageContext.setAttribute("i", i);
	  		}
	  		
	  		2) forEach문 : 배열의 길이만큼 반복
	  		String[] list = (list)pageContext.getAttribute("name");
	  		for(String name : list){
	  		}
	   --%>
	   <%
	   		String[] list = {"양승광", "이범준", "안현진"};
	   
	   		pageContext.setAttribute("list", list);
	   %>
	   <c:forEach items="${list}" var="name">
	   		<h4>${name}</h4>
	   </c:forEach>
	   
	   <table>
	   		<tr>
	   			<c:forEach var="i" begin="0" end="9" step="1">
	   			
	   				<td>${i}</td>
	   				
	   			</c:forEach>
	   		</tr>
	   </table>
	 
</body>
</html>

'Web > JSP_Servlet' 카테고리의 다른 글

JSP vs SPA(AJAX)  (0) 2023.09.15
Ajax_이메일 중복 확인  (0) 2023.05.09
MVC_게시글 작성, 게시글 조회 by FrontController  (1) 2023.05.03
MVC_FrontController  (1) 2023.05.03
MVC_회원관리 시스템  (1) 2023.04.28

댓글