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}
</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 |