JAVA

실무에서 사용하는 JSP- JSTL 문법

undefineds 2020. 7. 10. 14:08

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 StringReturn -> 일치하는 시작열 반환 / 미일치시 -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>원