2012-01-23 14 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>けどこれは私が意図したものではないディビジョンリストの最後の項目のパイプを削除するだけです.....

Jstlを使用して実装できる回避策がありますか、それを動作させるにはJavaScriptを使用する必要がありますか?すべてのヘルプは非常にあなたがDivisionList属性が実際にDivisionですので、あなたの変数の命名を気にする必要があり、そして小文字で、変数として名前を付ける必要があります...

おかげ

答えて

1

をいただければ幸いですd:divisionc: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> 

を:最初の1を除くすべての分割前のパイプを付加し、最初のものは既に表示されているかどうかを知るためにフラグを使用します。

ちょうど逆の戦術を使います特殊なHTML文字(<,>など)は適切にエスケープされます。

+0

"最初の"状態は完全に私の心をスキップした........魅力のように働く....ありがとう – Nani

関連する問題