본문 바로가기

개인공부

JSTL

반응형

JSTL 사용하기

import 해주고 prefic="c" 로 고정해준다 보통 c로 사용하고 꼭 c일 필요는 없다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

변수지원

set : JSP에서 사용될 변수를 설정한다.

remove : 설정한 변수를 제거한다.

 

흐름제어

if : 조건에 따라 내부 코드를 수행한다.

choose : 다중 조건을 처리할 때 사용한다.

forEach : 컬렉션이나 Map의 각 항목을 처리할 때 사용한다.

forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용한다.

 

URL 처리

import : URL을 사용하여 다른 자원의 결과를 삽입한다.

redirect : 지정한 경로로 리다이렉트 한다.

url : URL을 재작성 한다.

 

기타 태그

cathch : 익셉션 처리에 사용된다.

out : JspWriter에 내용을 알맞게 처리한 후 출력한다.

 

 

<c:set var="변수명" value="값" [scope="영역"] />

<c:set var = "ir" value="홍길동" scope="page"/>

- var : 값을 지정할 EL 변수의 이름

- value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용하여 값을 지정할 수 있다.

- scope : 변수를 저장할 영역을 지정한다. (page, request, session, applicaion 기본값은 page)

 

- <c:set target="대상" property="프로퍼티이름" value="값" />

	<% Member member = new Member(); %>
	<c:set target="<%= member %>" property="name" value="redbin"/>
	<%= member.getName() %>
    
    	<% Map<String,String> memberMap = new HashMap<String,String>();%>
	<c:set target="<%= memberMap %>" property="redbin" value="01082230471"/>
	<%= memberMap.get("redbin") %>

 

- target : 프로퍼티의 값을 설정할 대상 객체, 표현식이나 EL변수를 지정한다. (자바빈 객체나 Map)

- property : 설정할 프로퍼티 이름, target이 자바빈 객체인 경우 프로퍼티 이름에 해당하는 set 메서드를 제공해주어야 한다. Map인 경우 Map.put(프로퍼티이름, 값)

- value : 설장할 프로퍼티의

 

	<%
		HashMap pref = new HashMap();
	%>
	
	<!-- pref는 오브젝트가 들어간다 여기서는 HashMap이 들어감 -->
	<c:set var = "pref" value ="<%= pref %>"/>
	<c:set var="favorColor" value="#{pref.color}"/>
	
	좋아하는 색 : ${favorColor}
    
   	<c:set target="${ pref }" property="color" value="red" />

	좋아하는 색 : ${favorColor}

- $ 즉시적용 # 지연적용

- <c:set var="이름" value="#{식}" />

- var : 값을 지정할 EL 변수의 이름

- value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용하여 값을 지정할 수 있다.

 

 

<c:remove var="var명" scope="영역"/>

- set 태그로 지정한 변수를 삭제할 때 사용된다.

- <c:remove var="var명 scope="영역"/>

- var속성과 scope속성은 set 속성과 동일한 의미를 갖는다.

- scope 영역을 지정하지 않으면 동일한 이름의 변수를 모두 삭제된다.

 

<c:if test="조건">...<c/c:if>

	<c:if test="true">
		항상 실행된다.<br>
	</c:if>
	
	<c:if test="false">
		항상 실행되지않는다.<br>
	</c:if>
	
	<c:if test="true 도 아니고 false 도 아닌 텍스트">
		항상 실행되지 않는다<br>
	</c:if>
	<c:if test = "${param.name=='bk'}">
		EL 결과 값이 true 일 때 실행된다.<br>
		name 파라미터의 값 : &{param.name} <br>
	</c:if>
	
	<% Boolean flag = true; %>
	<c:if test ="<%= flag %>">
		 표현식 결과값이 true 인 경우 실행된다.<br>
	</c:if>

 

<c:choose>,<c:when>,<c:otherwise> 태그

 

	<c:choose>
		<c:when test="조건 1">
			...
		</c:when>
		<c:when test="조건 2">
			...
		</c:when>		
		<c:when test="조건 3">
			...
		</c:when>		
		<c:otherwise>
		</c:otherwise>
	</c:choose>

<c:forEach> 태그

varstatus : 루프 정보를 담는 LoopTagStatus 객체를 저장할 변수명을 값으로 갖는다.

 

- index : 루프 실행에서 현재 인덱스

- count : 루프 실행 회수

- begin : begin 속성 ㄱ밧

- end : end 속성 값

- step : step 속성 값

- first : 현재 실행이 첫 번째 실행인 경우 true

- last : 현재 실행이 루프의 마지막 실행인 경우 true

- current : 컬렉션 중 현재 루프에서 사용할 객체

	<c:set var="sum" value="0"/>
	<c:forEach var ="i" begin = "1" end="100" step="2">
		<c:set var="sum" value="${sum+i}"/>
	</c:forEach>
	${sum}
	<c:forEach var = "i" begin="1" end = "9">
		<c:forEach var = "j" begin ="1" end="9">
			${i} * ${j} = ${i * j}<br>
		</c:forEach>
	</c:forEach>
	<c:forEach var="i" items="${sportsArray}" begin="1" end="3" step="1" varStatus="status">
		i 값 : ${i} <br>
		루프 실행 현재 인덱스 값 : ${status.index}<br>
		루프 실행 횟수 : ${status.count}<br>
		begin 값 : ${status.begin}<br>
		end 값 : ${status.end} <br>
		step 값 : ${status.step}<br>
	</c:forEach>
	
	<c:set var = "memberMap" value = "<%= map %>"/>
	<c:forEach var = "i" items="${memberMap}">
		${i.key} : ${i.value}<br>
	</c:forEach>

 

<c:forTokens>태그

- 자바의 Tokenizer와 같은 기능을 제공하는 태그이다.

- <c:forTokens var="token" items="문자열" delims="구분자"> ${token} </c:forTokens>

- item 속성으로 전달받은 문자열을 delims에 구분자를 이용해서 나눈뒤 var 변수에 저장한다.

	<c:forTokens var="fruit" itmes="토마토^귤^포도^오렌지^복숭아" delims="^">
		${fruit}&nbsp;
	</c:forTokens>

 

URL 처리 태그

- 내부/외부 자원의 삽입 : <c:import>, URL 생성 : <c:url> , 리다이렉트 <c:redirect> 기능 제공

 

<c:import> 태그 

- 특정 URL의 결과를 읽어와 현재 위치에 삽입하거나 EL 변수에 저장할대 사용한다.

- 동일한 웹 어플리케이션 뿐만 아니라 외부의 다른 자원을 익어와 포함시킨다.

- <c:import url="URL" var="변수명" scope="영역" charEncoding="캐릭터셋"></c:import>

- var 속성을 명시하면 해당 URL에서 읽어온 데이터를 scope에 지정된 영역의 var 속성에 명시한 EL변수에 저장한다.

 

	<c:import url = "http://www.naver.com"/>
	<c:import url="https://www.youtube.com/results">
		<c:param name="search_query" value="독도"/>
	</c:import>
	
	<c:import url="c_import_help.jsp">
		<c:param name="message" value="파라미터값을 붙여주세요~!"/>
	</c:import>

param 은 특정 값에 이름을 지정해서 값을 지정한다음 보낼수 있다.

 

 

반응형

'개인공부' 카테고리의 다른 글

web 자주사용하는 태그들  (0) 2020.05.25
페이징 처리  (0) 2020.04.26
web공부  (0) 2020.04.21
GIT 시작하기(버전관리의 본질)  (0) 2020.03.13
HTML 태그 정보  (0) 2020.03.10