*Core 태그 라이브러리 기능
      - 변수 지원 : <c:set> 
                       <c:remove>

     

    Core 태그 라이브러리 기능 변수 삭제 remove 예제

    personInfo_remove.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!-- *커스텀 태그(Custom teg)
    		- 액션 태그나 표현 언어를 사용하더라도 조건식이나 반복문 등 자바코드를 제거하기 위해서 도입된 기능.
    	 *커스텀 태그 종류
    	 	- 1)JSTL (JSP Standard Tag Library)
    	 		:JSP페이지에서 가장많이 사용하는 기능을 태그로 제공.
    	 		 JSTL 라이브러리를 따로 설치해서 사용가능
    	 		 
    		- 2)개발자가 만든 커스텀 태그
    			: 스프링 프레임워크(오픈소스)에서 미리 만들어서 제공.
    	 *JSTL 라이브러리 구분
    		- 코어 : 변수, 조건문, 반복문 처리...
    		- 국제화 : 숫자, 날짜 형식...
    		- XML 
    		- 데이터베이스 : SQL
    		- 함수 : 컬랙션 처리, 문자열 처리	
    		
    	 *Core 태그 라이브러리 기능
    	 	- 변수 지원 : 	
     -->
    <!-- core태그 라이브러리를 사용하기위해 반드시 선언 -->
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <!-- var : 사용할 변수이름, value : 변수에 저장할 값, scope : 접근범위-->
    <c:set var="id" value="Lee" scope="page" /> 
    <c:set var="pw" value="1234" scope="page" />
    
    <!-- 변수값을 el태그 이용해서 저장 -->
    <c:set var="name" value="${'정도전'}" />
    <c:set var="age" value="${22}" />
    <c:set var="height" value="${177}" />
    
    <!-- 위에서 지정한 값 아래에서 변수값을 remove 이용해서 삭제함 --> 
    <c:remove var="age"/>
    <c:remove var="height"/>
    
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL라이브러리 remove태그</title>
    </head>
    <body>
    	<table border="1">
    		<tr align="center" bgcolor="yellow">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="7%"><b>이름</b></td>
    			<td width="7%"><b>나이</b></td>
    			<td width="7%"><b>키</b></td>
    		</tr>
    		<!-- el태그 이용해서 값 출력 -->
    		<tr align="center">
    			<td>${id}</td>
    			<td>${pw}</td>
    			<td>${name}</td>
    			<td>${age}</td>
    			<td>${height}</td>
    		</tr>
    	</table>
    </body>
    </html>


    Core 태그 라이브러리 기능 if 예제

    personInfo_if.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!-- *커스텀 태그(Custom teg)
    		- 액션 태그나 표현 언어를 사용하더라도 조건식이나 반복문 등 자바코드를 제거하기 위해서 도입된 기능.
    	 *커스텀 태그 종류
    	 	- 1)JSTL (JSP Standard Tag Library)
    	 		:JSP페이지에서 가장많이 사용하는 기능을 태그로 제공.
    	 		 JSTL 라이브러리를 따로 설치해서 사용가능
    	 		 
    		- 2)개발자가 만든 커스텀 태그
    			: 스프링 프레임워크(오픈소스)에서 미리 만들어서 제공.
    	 *JSTL 라이브러리 구분
    		- 코어 : 변수, 조건문, 반복문 처리...
    		- 국제화 : 숫자, 날짜 형식...
    		- XML 
    		- 데이터베이스 : SQL
    		- 함수 : 컬랙션 처리, 문자열 처리		
     -->
    <!-- core태그 라이브러리를 사용하기위해 반드시 선언 -->
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <!-- var : 사용할 변수이름, value : 변수에 저장할 값, scope : 접근범위-->
    <c:set var="id" value="Lee" scope="page" /> 
    <c:set var="pw" value="1234" scope="page" />
    
    <!-- 변수값을 el태그 이용해서 저장 -->
    <c:set var="name" value="${'정도전'}" />
    <c:set var="age" value="${22}" />
    <c:set var="height" value="${177}" />
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL라이브러리 if태그</title>
    </head>
    <body>
    	<c:if test="${true}"> 	<!-- test: EL을 이용해 수행할 조건식 위치 -->
    		<h2>항상 참입니다.</h2>
    	</c:if>
    	
    	<c:if test="${11 == 11}">
    		<h2>두 값은 같습니다.</h2>
    	</c:if>
    	
    	<c:if test="${(id == 'Lee') && (name == '정도전')}">
    		<h2>아이디는 ${id}이고, 이름은 ${name}</h2>
    	</c:if>
    	
    	<c:if test="${age == 22}">
    		<h2>아이디는 ${age} 입니다.</h2>
    	</c:if>
    	
    	<c:if test="${height > 170}">
    		<h2>${name}의 키는 170보다 큰 ${height} 입니다.</h2>
    	</c:if>
    	
    </body>
    </html>


    Core 태그 라이브러리 기능 choose 예제 (switch와 유사)

    personInfo_choose.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!-- core태그 라이브러리를 사용하기위해 반드시 선언 -->
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <!-- var : 사용할 변수이름, value : 변수에 저장할 값, scope : 접근범위-->
    <c:set var="id" value="Lee" scope="page" /> 
    <c:set var="pw" value="1234" scope="page" />
    
    <!-- 변수값을 el태그 이용해서 저장 -->
    <c:set var="name" value="${'정도전'}" />
    <c:set var="age" value="${22}" />
    <c:set var="height" value="${177}" />
    <c:remove var="name"/>
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL라이브러리 choose태그</title>
    </head>
    <body>
    	<table border="1">
    		<tr align="center" bgcolor="yellow">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="7%"><b>이름</b></td>
    			<td width="7%"><b>나이</b></td>
    			<td width="7%"><b>키</b></td>
    		</tr>
    		
    		<c:choose>
    			<c:when test="${empty name}">	<!-- 변수 name이 null이거나 빈 문자열인지 체크함(name == null) -->
    				<tr align="center">
    					<td colspan="5">이름을 입력하세요!!</td>
    				</tr>			
    			</c:when>
    			<c:otherwise>
    				<tr align="center">
    					<td>${id}</td>
    					<td>${pw}</td>
    					<td>${name}</td>
    					<td>${age}</td>
    					<td>${height}</td>
    				</tr>
    			</c:otherwise>
    		</c:choose>
    	</table>
    </body>
    </html>

    remove 주석 주었을 경우
    remove


    Core 태그 라이브러리 기능 변수 삭제 forEach 예제 (반복문)

    JSP페이지에서 반복문을 수행하는 태그 
    -var : 반복할 변수 이름
    -begin : 반복 시작값
    -end : 반복 종료값
    -step : 한번 반복할때마다 반복 변수를 증가시킬 값
    -varStatus : 반복 상태 속성 
       count-몇번째 반복인지 나타내는 속성, 1부터 시작함.
       index-0부터 시작
       first-첫번째 반복인지 나타냄
       last-마지막 반복인지 나타냄

     

    personInfo_foreach.jsp

    <%@page import="java.util.List"%>
    <%@page import="java.util.ArrayList"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!-- core태그 라이브러리를 사용하기위해 반드시 선언 -->
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    
    <%
    	List<String> dataList = new ArrayList<>();	//인터페이스의 다형성
    	dataList.add("반갑습니다.");
    	dataList.add("축하합니다.");
    	dataList.add("안녕하세요.");					//ArrayList에 3개의 String객체 저장하는 코드
    %>
    
    <c:set var="list" value="<%=dataList %>" />		<!-- list라는 변수에 dataList를 저장 -->
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL라이브러리 forEach태그</title>
    </head>
    <body>
    	<!-- JSP페이지에서 반복문을 수행하는 태그 
    			-var : 반복할 변수 이름
    			-begin : 반복 시작값
    			-end : 반복 종료값
    			-step : 한번 반복할때마다 반복 변수를 증가시킬 값
    			-varStatus : 반복 상태 속성 
    						count-몇번째 반복인지 나타내는 속성, 1부터 시작함.
    						index-0부터 시작
    						first-첫번째 반복인지 나타냄
    						last-마지막 반복인지 나타냄
    			-items : 반복할 객체 이름
    	-->
    	<c:forEach var="i" begin="1" end="10" step="1" varStatus="loop">
    		i = ${i} &nbsp;&nbsp;&nbsp;&nbsp; 반복횟수 : ${loop.count}<br/>
    	</c:forEach>
    	
    	<c:forEach var="i" begin="1" end="10" step="2">
    		10 * ${i} = ${10 * i} &nbsp;&nbsp;&nbsp;&nbsp; <br/>
    	</c:forEach>
    	
    	<c:forEach var="data" items="${list}">		<!-- ArrayList 컬랙션에 저장된 객체를 하나씩 가져와서 처리 -->
    		${data}<br/>
    	</c:forEach>
    	
    	<c:set var="car" value="소나타, 그랜져, 제네시스, 아반떼" />
    	<c:forTokens var="token" items="${car}" delims=",">		<!-- 구분자(delims)-콤마를 이용해서 문자열을 분리해 출력함 -->
    		${token}<br/>
    	</c:forTokens>
    </body>
    </html>


    JSTL bean 이용 forEech태그 사용 예제 

    Member.java

    package kr.gov.jstl;
    
    import java.sql.Date;
    
    public class Member {
    	
    	private String id;
    	private String pw;
    	private String name;
    	private String email;
    	private Date joinDate;
    	
    	//생성자
    	public Member() {
    	
    	}
    
    	//오버로딩
    	public Member(String id, String pw, String name, String email) {
    		super();
    		this.id = id;
    		this.pw = pw;
    		this.name = name;
    		this.email = email;
    	}
    	
    	//getter, setter
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getPw() {
    		return pw;
    	}
    
    	public void setPw(String pw) {
    		this.pw = pw;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getEmail() {
    		return email;
    	}
    
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	public Date getJoinDate() {
    		return joinDate;
    	}
    
    	public void setJoinDate(Date joinDate) {
    		this.joinDate = joinDate;
    	}
    	
    }

     

    personInfo_foreach_bean.jsp

    <%@page import="java.util.ArrayList"%>
    <%@page import="kr.gov.jstl.Member"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    
    <%
    	List<Member> membersList = new ArrayList<>();	//인터페이스 다형성
    	Member member1 = new Member("lee", "1234", "이성계", "lee@ggmail.com");
    	Member member2 = new Member("jung", "1234", "정도전", "jung@ggmail.com");
    	Member member3 = new Member("ha", "1234", "하륜", "ha@ggmail.com");
    	membersList.add(member1);
    	membersList.add(member2);
    	membersList.add(member3);		/* ArrayList에 3개의 Member객체 저장 */
    %>
    
    <!-- membersList라는 변수에 membersList를 저장 -->
    <c:set var="membersList" value="<%=membersList %>" />
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL forEech태그</title>
    </head>
    <body>
    	<table border="1">
    		<tr align="center" bgcolor="lightgreen">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>	
    			<td width="5%"><b>이름</b></td>	
    			<td width="5%"><b>이메일</b></td>		
    			
    		</tr>
    		<c:forEach var="member" items="${membersList}" begin="0" end="2" step="1">
    			<tr align="center">
    				<td>${member.id }</td>
    				<td>${member.pw }</td>	
    				<td>${member.name }</td>	
    				<td>${member.email }</td>		
    			</tr>
    		</c:forEach>	<!-- 향상된 for문 형태로 객체들을 가져와 출력 -->
    	</table>
    </body>
    </html>


    JSTL의 url태그 예제

    jstl_url.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!-- 
    	c:url 태그 
    		- JSP페이지에서 URL 정보를 저장하는 기능
    		- var : url이 저장된 변수이름
    		- value : url 경로 표시, 생성할 URL, 페이지 url값을 설정함.
    		- 전달할 파라메터값을 param태그 이용해서 페이지 이동할때 사용함.
    		- url 태그로 페이지 이동하면, get방식으로 이동함.
     -->
    
    
    <c:url var="url" value="url_result.jsp">
    	<c:param name="id" value="lee"/>
    	<c:param name="pw" value="1234"/>
    	<c:param name="name" value="이도"/>
    	<c:param name="email" value="lee@ggmail.com"/>
    </c:url>
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL의 url태그</title>
    </head>
    <body>
    	<a href="${url}">화면정보 출력</a>
    </body>
    </html>

     

    url_result.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%
    	request.setCharacterEncoding("UTF-8");
    	String id = request.getParameter("id");
    	String pw = request.getParameter("pw");
    	String name = request.getParameter("name");
    	String email = request.getParameter("email");
    %>
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>url태그 결과</title>
    </head>
    <body>
    	<table border="1">
    		<tr align="center" bgcolor="yellow">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="7%"><b>이름</b></td>
    			<td width="7%"><b>이메일</b></td>	
    		</tr>
    		
    		<!-- param태그 이용해서 값 출력 -->
    		<tr align="center">
    			<td>${param.id }</td>
    			<td>${param.pw }</td>
    			<td>${param.name }</td>
    			<td>${param.email }</td>	
    		</tr>
    		
    		<!-- 스크립트릿 익스프레션 출력 -->
    		<tr align="center">
    			<td><%=id %></td>
    			<td><%=pw %></td>
    			<td><%=name %></td>
    			<td><%=email %></td>	
    		</tr>
    		
    	</table>
    </body>
    </html>

    jstl_url.jsp


    JSTL의 redirect태그 예제

    jstl_redirect.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    
    <!-- c:redirect 태그 <== response.sendRedirect()기능을 대처함.
    				- url : redirect할 URL이 지정될 변수
    	 c:param 태그 
    	 			- name : 매개변수 이름 
    	 			- value : 전달값
    -->
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>JSTL의 redirect태그</title>
    </head>
    <body>
    	<c:redirect url="url_result.jsp"> 		<!-- 리다이렉트할 페이지를 설정 -->
    		<c:param name="id" value="lee" />	<!-- 리다이렉트할 페이지로 전달할 매개변수 설정 -->
    		<c:param name="pw" value="1234" />
    		<c:param name="name" value="이방원" />
    		<c:param name="email" value="lee@ggmail.com" />
    	</c:redirect>
    </body>
    </html>

    예제로 만들었던 url_result.jsp를 출력


    JSTL 회원가입 예제 (out 태그)

    joinForm.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>회원 가입 폼</title>
    </head>
    <body>
    	<h1 style="text-align: center;">회원 등록창</h1>
    	<form action="out.jsp" method="post">
    		<table border="1"  align="center">
    			<tr>
    				<td width="100"><p align="right">아이디</p></td>
    				<td width="200"><input type="text" name="id"></td>
    			</tr>
    			<tr>
    				<td width="200"><p align="right">비밀번호</p></td>
    				<td width="400"><input type="password" name="pw"></td>
    			</tr>
    			<tr>
    				<td width="200"><p align="right">이름</p></td>
    				<td width="400"><input type="text" name="name"></td>
    			</tr>
    			<tr>
    				<td width="200"><p align="right">이메일</p></td>
    				<td width="400"><input type="email" name="email"></td>
    			</tr>
    			<tr>
    				<td align="center" colspan="2" width="400">
    					<input type="submit" value="가입하기">
    					<input type="reset" value="다시입력">
    				</td>
    			</tr>
    		</table>
    	</form>
    </body>
    </html>

     

    out.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
        
    <%
    	request.setCharacterEncoding("UTF-8");
    	String id = request.getParameter("id");
    	String pw = request.getParameter("pw");
    	String name = request.getParameter("name");
    	String email = request.getParameter("email");
    %>
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>jstl out태그</title>
    </head>
    <body>
    	<table border="1">
    		<tr align="center" bgcolor="yellow">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="7%"><b>이름</b></td>
    			<td width="7%"><b>이메일</b></td>
    		</tr>
    		
    		<tr align="center">
    			<td><c:out value="${param.id }" /></td>
    			<td><c:out value="${param.pw }" /></td>
    			<td><c:out value="${param.name }" /></td>
    			<td><c:out value="${param.email }" /></td>
    		</tr>
    		
    		<tr align="center">
    			<td><%=id %></td>
    			<td><%=pw %></td>
    			<td><%=name %></td>
    			<td><%=email %></td>
    		</tr>
    		
    		<!-- 
    			c:out 태그 
    				- 화면에 지정한 값을 출력하는 기능
    				- value : 출력값 
    				- escapeXml : excape 문자를 반환여부 지정(생략가능, 기본값 true)
    								<		&lt;
    								>		&gt;
    								&		&amp;								
    		-->
    		<tr align="center">
    			<td><c:out value="&lt;" escapeXml="true" /></td> <!-- value &lt; 그대로 출력 -->
    			<td><c:out value="&lt;" escapeXml="false" /></td> <!-- value의 &lt;에 해당하는 특수문자로 변환되어 출력 -->
    			<td><c:out value="&gt;" escapeXml="true" /></td>
    			<td><c:out value="&gt;" escapeXml="false" /></td>
    		</tr>
    	</table>
    </body>
    </html>
    
    
    
    
    
    

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading