Web JSP Core Tag

Core tag

  • jstl.jar, standard.jar 코어태그 사용시 필요 jar (mavenrepository)에서 다운로드 가능

  • Core: 제어문(for, if) + El tag

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

태그 사용을 위해 상위 문구 추가 필요

1. 기본 형태

 <c:set var="cdata" value="core JSTL입니다" />
${ cdata } <-- core JSTL입니다 출력 -->

2. out

  • session에도 저장 가능
  • <c:out 을 통해 출력 가능
<%
	session.setAttribute("sessionData", "저장된 데이터");
%>
<c:set var="sdata" value="${ sessionData }"/>

<c:out value="${sdata}"/>

3. if

  • JSP 에서 if 문 사용할 경우
<%
	request.setAttribute("count", "10");
%>

<%
String scount = (String)request.getAttribute("count");
int count = Integer.parseInt(scount);
if(count >= 10){
%>
	<p>count:<%=count %></p>
<%	
}
%>
  • core tag 를 사용
<c:if test="${ count >= 10 }">
	<p> core count:<c:out value="${count }"></c:out></p>
</c:if>
  • 예제
<%
	request.setAttribute("name", "홍길동");
%>

<c:if test="${ name eq'홍길동' }"> <-- 홍길동과 이름이 같을경우 출력 -->
	<p>이름은 홍길동 입니다</p>
</c:if>
<%
	request.setAttribute("name", "일지매");
%>

<c:if test="${name == '일지매' }" var="flg"/>  <!-- 조건문 결과 true/false 를 변수에 대입 -->

<c:if test="${flg }">
	<p>이름은 일지매 입니다.</p>
</c:if>

4. for

  • JSP 에서 for 문 사용할 경우
<%
	for(int i = 0; i < 10; i++){
		%>
		<%=i %>
		<%
	}
%>
  • core tage 사용
<c:forEach begin="0" end="9" step="1" varStatus="i">
	<c:out value="${i.index}"></c:out>
</c:forEach>

5. list

  • JSP에서 사용
<%
	List<MemberDto> list = new ArrayList<>();

	MemberDto mem = new MemberDto();
	mem.setMessage("안녕하세요");
	list.add(mem);
	
	mem = new MemberDto();
	mem.setMessage("건강하세요");
	list.add(mem);
	
	mem = new MemberDto();
	mem.setMessage("집에 가고싶다");
	list.add(mem);
	
	request.setAttribute("list", list);
%>
<%
	for(int i = 0; i < list.size(); i++){
		MemberDto m = list.get(i);
	}
%>
  • core tag 사용
<c:forEach begin="0" end="2" var="m" items="${list}" varStatus="i">
	<p>index:<c:out value="${i.index}"/> </p>
	<p>data:<c:out value="${m.message}"/> </p>
</c:forEach>

6. Map

  • core tag 사용
<%
	Map<String, String> map = new HashMap<>();

	map.put("apple", "사과");
	map.put("pear", "배");
	map.put("banana", "바나나");
	
	request.setAttribute("map", map);
%>
<-- key, value를 사용하여  값을 얻을  있음 -->
<c:forEach var="obj" items="${map}">
	key:<c:out value="${obj.key}"/> 
	value:<c:out value="${obj.value }"/>
</c:forEach>