실무에서 사용하는 JSP- JSTL 문법
JSTL -> JSP Standard Tag Library
JSTL 종류.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
실무에서 많이 사용하는 JSTL이다.
<%@ taglib prefix="daum" tagdir="/WEB-INF/tags/daum" %>
이런식으로 WEB-INF 밑에 외부파일을 태그 라이브러리로 사용하는경우도 많다.
fn 태그
#contains
<a href="${fn:contains(featuredTypeUri,'-mobile') ? '/sp' : ''}/pages/
${list.featuredUrl}" target="_blank">
#replace
<td>${fn:replace(fn:replace(list.displayListFlag,'Y','공개'),'N','비공개')}</td>
#substring
<td>${fn:substring(board.creationDate, 0, 4)}-${fn:substring(board.creationDate, 4, 6)}
-${fn:substring(board.creationDate, 6, 8)}</td>
#indexOf
<c:if test="${fn:indexOf(requestContext.httpHost, 'www.url.com') > -1 ||
fn:indexOf(requestContext.httpHost, '111.111.111.11') > -1}">
#length
<td rowspan="${fn:length(category.conditions)}">
#split
<td class="label">휴대폰번호<span class="require">*</span></td>
<td>
<div class="input_wrap">
<c:set var="phone_arr" value="${fn:split(seller.phoneNumber, '-') }"/>
<select name="phoneNumber1" style="width:100px;">
<c:forEach items="${phoneCodes}" var="code">
<option value="${code.value}" ${code.value == phone_arr[0]
? 'selected="selected"' : '' }>${code.label}</option>
</c:forEach>
</select> -
<input type="text" name="phoneNumber2" value="${phone_arr[1]}" maxlength="4"
title="휴대폰번호 가운데자리"/> -
<input type="text" name="phoneNumber3" value="${phone_arr[2]}" maxlength="4"
title="휴대폰번호 마지막자리"/>
</div>
</td>
#contains
-문자열 포함여부 : Parameter(Target String , Matched String) Return -> true / false를 반환
#replace
-문자열 재정의 Parameter(Target String , Matched String, Change String) Return -> Change String
#substring
-문자열 자르기 Parameter(Target String , StartIndex , EndIndex)
#indexOf
-문자열 포함여부 : Parameter(Target String , Matched String) Return -> 일치하는 시작열 반환 / 미일치시 -1 반환
EX) ('ABCDE' , 'E') -> 4반환. index는 0부터 시작.
#length
-문자열 길이 : 길이반환
#split
-문자열 나누기 : (Target String ,Matched String)
-Return -> Matched String을 기준으로 배열반환
C 태그
<c:forEach items="${list}" var="list" varStatus="i">
<c:choose>
<c:when test="${list.statusCd == '1'}">
<td class="fc-waiting">접수대기</td>
</c:when>
<c:when test="${list.statusCd == '2'}">
<td class="fc-cancel">접수취소</td>
</c:when>
<c:when test="${list.statusCd == '3'}">
<td class="fc-waiting">상담대기</td>
</c:when>
<c:when test="${list.statusCd == '4'}">
<td class="fc-waiting">사전점검대기</td>
</c:when>
<c:when test="${list.statusCd == '5'}">
<td class="fc-waiting">설치대기</td>
</c:when>
<c:when test="${list.statusCd == '6'}">
<td class="fc-complete">설치완료</td>
</c:when>
<c:when test="${list.statusCd == '7'}">
<td class="fc-cancel">상담취소</td>
</c:when>
<c:otherwise>
<td class="fc-cancel">미분류</td>
</c:otherwise>
</c:choose>
</c:forEach>
<c:if test="${empty list}">
<tr>
<td colspan="5">
<div class="coupon_not">등록된게 없습니다.</div>
</td>
</tr>
</c:if>
<a href="<c:url value='/m/event/spot' />" class="btn_more">핫딜 바로가기</a>
다양한 예문.
#전화번호
<span class="label">전화번호</span>
<c:choose>
<c:when test="${fn:startsWith(cicAfterService.telNo2, '02')}">
<c:if test="${fn:length(fn:replace(cicAfterService.telNo2,' ','')) == 9}">
<span>${fn:substring(cicAfterService.telNo2, 0, 2)}-${fn:substring(cicAfterService.telNo2, 2, 5)}-${fn:substring(cicAfterService.telNo2, 5, 9)}</span>
</c:if>
<c:if test="${fn:length(fn:replace(cicAfterService.telNo2,' ','')) > 9}">
<span>${fn:substring(cicAfterService.telNo2, 0, 2)}-${fn:substring(cicAfterService.telNo2, 2, 6)}-${fn:substring(cicAfterService.telNo2, 6,fn:length(fn:replace(cicAfterService.telNo2,' ','')))}</span>
</c:if>
<c:if test="${empty cicAfterService.telNo2}">
<span></span>
</c:if>
</c:when>
<c:otherwise>
<c:if test="${fn:length(fn:replace(cicAfterService.telNo2,' ','')) == 10}">
<span>${fn:substring(cicAfterService.telNo2, 0, 3)}-${fn:substring(cicAfterService.telNo2, 3, 6)}-${fn:substring(cicAfterService.telNo2, 6, 10)}</span>
</c:if>
<c:if test="${fn:length(fn:replace(cicAfterService.telNo2,' ','')) > 10}">
<span>${fn:substring(cicAfterService.telNo2, 0, 3)}-${fn:substring(cicAfterService.telNo2, 3, 7)}-${fn:substring(cicAfterService.telNo2, 7, fn:length(fn:replace(cicAfterService.telNo2,' ','')))}</span>
</c:if>
<c:if test="${empty cicAfterService.telNo2}">
<span></span>
</c:if>
</c:otherwise>
</c:choose>
<fmt태그>
할인가격 구하기
<fmt:formatNumber value="${(item.itemPrice+item.salePrice) / item.itemPrice}"
pattern="#" var="seleProcent"/>
<b>${seleProcent}%</b>
<strong>${op:numberFormat(item.salePrice)}</strong>원