jstl foreach는 마지막 레코드의 요소를 생략합니다.
이 jstl을 사용하여 json 문자열을 공식화하려고하는데, 마지막 레코드 끝에 쉼표를 넣지 않도록 세그먼트를 어떻게 만들 수 있습니까? 끝에 쉼표를 기록하십시오.
<c:forEach items="${fileList}" var="current">
{ id:1001,data:["<c:out value="${current.fileName}" />" , "<c:out value="${current.path}" />" , "<c:out value="${current.size}" />" , "<c:out value="${current.type}" />"] },
</c:forEach>
사용하십시오 LoopTagStatus#isLast()
.
<c:forEach items="${fileList}" var="current" varStatus="loop">
{ id: 1001,
data: [
"<c:out value="${current.fileName}" />",
"<c:out value="${current.path}" />",
"<c:out value="${current.size}" />",
"<c:out value="${current.type}" />"
]
}<c:if test="${!loop.last}">,</c:if>
</c:forEach>
EL에서 다음 대신 조건부 연산자를 사용할 수도 있습니다 <c:if>
.
${!loop.last ? ',' : ''}
내가 JSTL에 대해 결코 좋아하지 않은 한 가지는 (실제로는 유일한 것이라고 생각합니다 :)) 목록 / 컬렉션의 크기를 검색 할 방법이 없다는 사실입니다.
편집 : 좋아, 가능했지만 나는 그것을 몰랐다 :( 여기를보십시오 .
forEach
태그는 보유 varStatus
하면 (행의 인덱스를 결정하기 위해 사용할 수있는 속성 index
/ count
온 특성 varStatus
변수)를 있지만 목록에서 마지막 위치에있는 경우에는 수단은 미리리스트의 크기를 갖는 것으로, 테스트해야 :
<c:forEach items="${fileList}" var="current" varStatus="status">
...
<c:if test="${not (status.count eq listSize)}">,</c:if>
</c:forEach>
그러나 listSize
이런 종류의 작업을 수행하기 전에 수동으로 범위 내에 배치 해야합니다.
내 프로젝트 중 하나에서 내가 한 일은 컬렉션을 가져와 값을 반환하는 태그를 직접 만드는 것이 었습니다.
<myLib:collectionSize collection="${fileList}" var="listSize" />
<c:forEach items="${fileList}" var="current" varStatus="status">
...
<c:if test="${not (status.count eq listSize)}">,</c:if>
</c:forEach>
이런 종류의 코드가 자주있는 경우에도 동일한 작업을 수행 할 수 있습니다 (그렇지 않으면 편리한 방법으로 범위에 추가 할 수 있습니다).
에 의해 JSTL과 모음의 크기를 확인 대답은 기능 태그를 사용했다
fn 네임 스페이스를 허용하려면 페이지 상단에 배치
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
jsp 페이지에서 이와 같이 사용하십시오.
<p>The length of the companies collection is : ${fn:length(companies)}</p>
참고 URL : https://stackoverflow.com/questions/3099234/jstl-foreach-omit-an-element-in-last-record
'programing tip' 카테고리의 다른 글
언제 RuntimeException을 잡아도 괜찮습니까? (0) | 2020.11.23 |
---|---|
C / C ++ 프로그램이 main () 전에 충돌 할 수있는 방법이 있습니까? (0) | 2020.11.23 |
Entity Framework 컨텍스트를 Using 문에 넣어야합니까? (0) | 2020.11.22 |
클립 보드에 데이터를 안전하게 복사하기위한 플래시 기반 ZeroClipboard의 HTML5 대안? (0) | 2020.11.22 |
Entity Framework에서 외래 키 관계를 추가하는 방법은 무엇입니까? (0) | 2020.11.22 |