2012-01-23 2 views
0

"Region"이라는 데이터베이스 열의 목록을 표시해야합니다 ..... 해당 목록의 모든 항목에 자식 값 (Division)이 포함되어 있으면 다음과 같이 표시되어야합니다 ,추가 기호를 제거하는 JSTl

1 NorthEast Division1 | Division2

2 Midwest Division1 | 부문 2 | 아래 그림과 같이 Division3

3 남 Division1 .... 등

이는 <c:foreach> 내부를 반복하여 지금까지, 나는 두 지역 및 별도의 목록에서 부서를 넣어라고했습니다 무슨 짓을했는지입니다 "|",

<c:forEach var="DivisionList" items="${RegionSection.DivisionList}" varStatus="vs"> 
<c:if test="${DivisionList.divisionID== id}" > 
${DivisionList.title} 
</c:if> 
</c:forEach> 

위를 사용하여, 나는 파이프없이 전체 데이터를 얻을 준비 할 수 있었다 나는 "마지막"조건을 사용하려고했습니다 파이프를 추가 ..., <c:if test="${!vs.last}"> | </c:if>하지만, 이것은 내가 의도 한 것이 아닌 Division 목록의 마지막 항목에있는 파이프 만 제거합니다 .....

Jstl을 사용하여 구현할 수있는 해결 방법이 있습니까? 아니면 Javascript를 사용해야 작동합니까? 어떤 도움이 DivisionList 속성이 실제로 Division 때문에 크게 ...

감사

답변

1

당신은 변수의 이름에 대해 관심을 가져야을 이해할 수있을 것이며, 소문자로, 변수로 지정해야 d : division. c:out가 확인합니다 사용, 또한

<c:set var="first" value="true"/> 
<c:forEach var="division" items="${RegionSection.DivisionList}"> 
    <c:if test="${division.divisionID == id}"> 
     <c:if test="${!first}"> | </c:if><c:out value="${division.title}"/> 
     <c:set var="first" value="false"/> 
    </c:if> 
</c:forEach> 

를 : 첫 번째 제외한 모든 부문하기 전에 파이프를 앞에 추가하고, 첫 번째가 이미 표시되어 있는지 알고 플래그를 사용

그냥 반대 전술을 사용 특수 문자 (예 : <, >)가 올바르게 이스케이프됩니다.

+0

젠장, "첫 번째"조건이 완전히 내 마음을 건너 뛰었습니다 ........ 매력처럼 작동합니다 .... 감사합니다. – Nani