IT 공부/JSP

Taglib

toraa 2022. 8. 3. 12:14

taglib
. 액션태그 : JSP에서 제공한 태그 <jsp:forward> 등..
. 사용자태그 : 사용자들이 만들어쓰는 태그
. 표준 사용자태그(JSTL) : 자주 사용하는 태그들을 모아서 사용할 수 있도록 한 것

 

. 기능별 분류된 태그 기능


     <%@ taglib prefix="c" url="http://java.sun.com/jsp/jstl/core" %> 
     코어 : 변수, 흐름제어, url 처리


      <%@ taglib prefix="fn" url="http://java.sun.com/jsp/jstl/fn" %>
      함수 : 컬렉션 처리, String 처리

. core 라이브러리 태그
   set : 변수설정
   remove : 변수제거
   if : 조건처리
   choose : 다중조건
   forEach : 반복문처리
   import : 
   redirect: 이동
   url : URL을 재작성
   catch : 예외처리
   out : 출력


jsp1.jsp

<%@ 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>taglib</title>
</head>
<body>
	<c:set var="name" value="변수의 값" scope="request"></c:set><br>
	<c:set var="age" scope="request">변수의 값</c:set>
	
</body>
</html>

Member.java

package bord;

public class Member {
	
	String name;
	String firstName;
	String secondName;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getSecondName() {
		return secondName;
	}
	public void setSecondName(String secondName) {
		this.secondName = secondName;
	}
	
	
}

jsp2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러방법으로 출력하기</title>
</head>
<body>
	<c:set var="name" value="서대길" />	<!-- name = "서대길" -->
	<c:out value="김광희" />
	<hr>
	<%
		Member m = new Member();
		m.setName("김광희");
		m.setFirstName("김");
		m.setSecondName("광희");	
	%>
	<%=m.getName() %><br>
	<%=m.getFirstName() %><br>
	<%=m.getSecondName() %><br>
	
	<hr>
	<!-- EL로 출력  (값설정 > 출력)-->
	${name }
	
	<!-- 액션태그로 출력   jsp:useBean (값설정 > 출력)-->
		
	<hr>
	<!-- JSTL로 출력 -->
	<c:set var="name1" value="<%=m.getFirstName() %>" scope="request"/>
	<c:set var="name2" value="서대길" />
	<c:set var="name3">서대길</c:set>
	<c:set var="name4" value="<%=m.getSecondName() %>"/>
	<c:set var="name5">${m.getFirstName() }</c:set>
	<c:set var="name6" value="${m.getSecondName() }" />
	
	이름1 : ${name1 }<br>
	이름2 : ${name2 }<br>
	이름3 : ${name3 }<br>
	이름4 : ${name4 }<br>
	이름5 : ${name5 }<br>	  <!-- 읽지못함 -->
	이름6 : ${name6 }<br>	  <!-- 읽지못함 -->
	
</body>
</html>

jsp3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import = "java.util.HashMap" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>출력</title>
</head>
<body>
	<%
		Member member = new Member();
		request.setAttribute("m", member);
	%>
	<c:set target="<%=member %>" property="name" value="서대길" />  <!-- member.setName(서대길) -->
	 출력1 : <%=member.getName() %><br>
	 출력2 : <c:out value="<%=member.getName() %>"/><br>
	 출력3 : ${m.getName() }
	 
	 <hr>
	 <c:set var="m" value="<%=member %>" />
	 <c:set target="${m}" property="name" value="김광희"/>
	 m의 name값 : ${m.name }<br>	
	 <!-- target을 EL로 지정 > 출력도 EL로 -->
	 
	 <hr>
	 <%
	 	HashMap<String,String> prop = new HashMap<>();
	 %>
	 <c:set target="<%=prop %>" property="host" value="localhost" />
	 prop속의 host 값 : <%=prop.get("host") %><br>
	  
</body>
</html>

jsp4.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	Member member = new Member();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>best member</title>
</head>
<body>
	<c:set var="mem" value="<%=member %>" />
	<c:set target="${mem }" property="name" value="서대길" />
		
	<c:set var="bestMember" value="#{mem.name }" />
	<h3>베스트 회원 : ${bestMember }</h3>
	
	<c:set target="${mem }" property="name" value="김광희" />
	<h3>베스트 회원 : ${bestMember }</h3>
	
</body>
</html>

jsp5.jsp

- c remove시 scope 잘 설정하

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>값 삭제</title>
</head>
<body>

	<c:set var="name" value="서대길" scope="request"/>
	<c:set var="name" value="김광희" scope="session"/>
	
	request값 : <%=request.getAttribute("name") %><br>
	session값 : <%=session.getAttribute("name") %><br>
	
	<c:remove var="name" scope="request"/>
	<hr>
	request값 : <%=request.getAttribute("name") %><br>
	session값 : <%=session.getAttribute("name") %><br>
	
</body>
</html>

c:if
  . 자바의 if와 같은 용도
  . if-else문은 표현할 수 없다.
  . 조건은 표현식이나 표현언어로 작성

 

jsp6.jsp

<%@ 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>c:if test</title>
</head>
<body>
	<form action="">
	
		이름 : <input type="text" name="name"><br>
		나이 : <input type="text" name="age"><br><br>
		<input type="submit" value="전송">
	
	</form>
	<br>
	<c:if test="true">
		이러면 무조건 실행됩니당<br>
	</c:if>
	<c:if test="${param.name == '서대길'}">
		파라미터의 값이 ${param.name }입니다.<br>	
	</c:if>
	<c:if test="${param.age > 20}">
		파라미터의 age값이 20살 이상입니다.<br>
	</c:if>	
	
	
</body>
</html>

jsp7.jsp

c:when / otherwise

<%@ 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>c:when/otherwise</title>
</head>
<body>
	<form action="">
		이름 : <input type="text" name="name"><br>
		나이 : <input type="text" name="age"><br><br>
		<input type="submit" value="전송">
	</form>
	<br>
	
	<c:choose>
		<c:when test="${param.name == '서대길' }">
			당신은 서대길 입니당♡ <br>
		</c:when>
		<c:when test="${param.age == '23' }">
			당신의 나이는 23살입니당 <br>
		</c:when>
		<c:otherwise>
			당신은 누구신가여
		</c:otherwise>
	</c:choose>
		
</body>
</html>

jsp8.jsp

c:forEach

<%@ 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>c:forEach</title>
</head>
<body>
	<c:forEach var="i" begin="1" end="100" step="1">
		<c:set var="sum" value="${sum+i }" />
	</c:forEach>
	1~100까지의 합 : ${sum } 입니당
	
</body>
</html>

${status.current} : 현재 참조하고 있는 값
${status.count} : 반복한 횟수
${status.index} : 현재 참조하고 있는 인덱스

 

jsp9.jsp

array 활용

<!-- 
	${status.current} : 현재 참조하고 있는 값
	${status.count} : 반복한 횟수
	${status.index} : 현재 참조하고 있는 인덱스
 -->
<%@ 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>array활용</title>
</head>
<body>
	<c:set var="arr" value="<%= new int[]{1,2,3,4,5,6,7,8,9,10} %>" />
	
	<table border="1">
		<tr><th>배열값</th><th>반복횟수</th><th>인덱스</th></tr>
		
		<c:forEach var="i" items="${arr }" begin="2" end="4" varStatus="status">
			<tr><td>${status.current }</td><td>${status.count }</td><td>${status.index }</td></tr>		
		</c:forEach>
		<!-- 오류 수정하긔 -->
	</table>

</body>
</html>

jsp10.jsp

HashMap

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.HashMap, java.util.Date" %>
<%
	HashMap<String, Object> map = new HashMap<>();
	map.put("name","서대길");
	map.put("today", new Date());
	map.put("phoine","010-2000-0225");	
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HashMap활용</title>
</head>
<body>
	<c:set var="map" value="<%=map %>"/>  <!-- HashMap map = map; -->
	<c:forEach var="m" items="${map }">    <!-- for(m:map) -->
		${m.key }=${m.value } <br>
	</c:forEach>
</body>
</html>

 

jsp11.jsp

c:import

<%@ 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>c:import</title>
</head>
<body>
	<div>
		<c:import url="https://www.naver.com">		
		</c:import>
	
	</div>
	<hr>
	<div>
		<c:import url="test.jsp">
			<c:param name="name" value="서대길"/>
			<c:param name="address" value="seoul" />
		</c:import>
	</div>
</body>
</html>

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
	<h1>귀여운 설탕과자 서대길♥</h1>
	<%
		String name = request.getParameter("name");
		String address =request.getParameter("address");
		out.print(name+"<br>");
		out.print(address+"<br>");
	%>
</body>
</html>

 

'IT 공부 > JSP' 카테고리의 다른 글

Database 연동2  (0) 2022.08.04
Database 연동1  (0) 2022.08.03
EL (표현언어)  (0) 2022.08.02
Session  (0) 2022.08.02
Cookies  (0) 2022.08.01