<%
if(list.size()>0{
for(int i=0; i<list.size(); i++){
Data data = (Data) list.get(i);
%>
<%= data.getTitle() %>
<% }
}else{
%>
데이터가 없습니다.
<%
}
%>
<%--------------------------%>
<ctag:if test="!empty %{list}">
<ctag:foreach varName="data" list="${list}">
${data.title}
</ctag:foreach>
</ctag:if>
<ctag:if test="empty ${list}">
데이터가 없습니다.
</ctag:if>
사용이유 - 스크립트 코드 사용줄이면서 가독성 높이기 위해
태그종류 - 코어(변수지원 흐름제어 url처리), 국제화(지역, 메시지형식, 숫자및 날짜형식), 함수(컬렉션처리 string처리)
xml(xml코어 흐름제어 xml변환), 데이터베이스(sql) --> 주로 사용안함
코어태그
변수지원
<c:set var="변수명" value="값" scope="영역">
scope - 변수를 저장할 영역, page, request, session, application
<c:set target="대상" property="프로퍼티이름" value="값>
target - 자바빈 객체 혹은 Map
property - setName() property 호출하기 위해 property값을 name으로 지정
<c:remove var="varName" scope="영역"/>
흐름제어
<c:if test="조건">
조건 - ${expr}, <%= expr %>
<c:choose><c:when><c:otherwise>
switch 문과 비슷
<c:choose> - switch, <c:when test="조건"> - case, <c:otherwise> - default
<c:when> 에서 조건은 c:if 태그와 동일하게 작성
<c:foreach var="변수" items="Map, 배열 Collection">
추가 속성
begin="starting point" end="finish point" step="증가분"
varStatus="" --> 인덱스 값 사용 (index, count, begin, end, step, first(boolean), last(boolean), current)
<c:forTokens var="변수이름" items="문자열" delims="구분자">
${varName}
</c:forTokens>
URL처리
<c:url value="URL" var="varName">
<c:param name="이름" value="값> --> url로 넘겨줄 값 지정
</c:url>
*절대주소 - https://www. naver. com 과 같은 완전한 url
상대주소 - /view/list.jsp와 같은 것
request.sendRedirect와 같은 역할
<c:redirect url="URL" context="경로">
<c:param name="이름" value="값">
</c:redirect>
기타
<c:out value="value" escapeXml="true or false" default="default value">
escapeXml - 특수문자를 변환할지 여부
<c:catch var="exName">
</c:catch>
태그블럭 사이에서 에러발생시 에러 객체를 exName에 할당 외부에서 사용가능
함수태그
${fn:function()}으로 사용
함수종류 - 책참고
'공부기록 > Servlet JSP' 카테고리의 다른 글
filter (0) | 2021.11.23 |
---|---|
JSTL2 (0) | 2021.11.08 |
EL (0) | 2021.11.05 |
자바빈 (0) | 2021.11.02 |
페이지 모듈화 (0) | 2021.11.02 |