티스토리 뷰


Board 나 Portlet 에서 <c:forEach> 태그로 LIST안의 내용을 뿌리는 것을 많이 하게 된다.
이때 뿌려지는 글자의 수가 너무 많아지면 page의 틀이 깨지거나 안맞게 되는 일이있다.
때문에 일정 글자수 이상일경우 잘라서 점(...)처리를 해주어야 한다.


처리전 :
 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리 나라만세

처리후 :
 동해물과 백두산이 마르고..



forEach로 밑에와 같이 리스트를 뿌려줄때
 <c:forEach items="${List}" var="data" varStatus="status">
   <c:out value="${data.nm}"/>
</c:forEach>


아래와 같이  <c:choose> 문을 추가해주고 자르는 구문을 적어주면 된다.
( java에서 쓰이는 substring 을 그대로 사용가능하다. 여기서는 14글자보다 클경우 13자리까지 표기하고 뒤에 점(...) 을 붙였다)
 <c:forEach items="${List}" var="data" varStatus="status">
          <c:choose>
           <c:when test="${fn:length(data.nm) > 14}">
            <c:out value="${fn:substring(data.nm,0,13)}"/>....
           </c:when>
           <c:otherwise>
            <c:out value="${data.nm}"/>
           </c:otherwise> 
          </c:choose>
</c:forEach>


c 태그를 쓰기위해서는 아래의 taglib를 추가해 주어야하고
 <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

글자를 자를때 쓰이는 fn 태그를 쓰려면 아래와같이 c 와 더불어 추가해주어야 한다
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>





 
댓글