Jstl удаление добавленного символа - PullRequest
0 голосов
/ 23 января 2012

Мне нужно отобразить список из столбца базы данных под названием «Регион» ..... для каждого элемента в этом списке, если он содержит дочернее значение (деление), он должен показать что-то вроде этого,

1 Северо-восточный дивизион1 |Дивизион2

2 Средний Запад Дивизион1 |Division2 |Division3

3 South 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>, но это только удаляет канал в последнем элементе списка деления, что не соответствует моему предназначению .....

Есть ли обходной путь для этого, который можно реализовать с помощьюJSTL или я должен использовать Javascript, чтобы он работал?Любая помощь будет принята с благодарностью ...

Спасибо

1 Ответ

1 голос
/ 23 января 2012

Вам следует позаботиться о присвоении имен вашим переменным, потому что атрибут DivisionList на самом деле является Division и должен именоваться как переменная, в нижнем регистре d: division.

Просто используйте обратную тактику: перед каждой дивизией, кроме первой, ставьте перед собой трубу и используйте флаг, чтобы узнать, было ли уже отображено первое:

<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>

Кроме того, использование c:out гарантируетчто специальные символы HTML (такие как <, >) правильно экранированы.

...