2012-01-25 36 views
0

下午好格式,我想通過分開表列中顯示項目列表的「」JSP超過逗號左

當前格式我是一個逗號信貸後顯示卡,但是如果沒有電子轉帳付款,最後一張卡後面會留下一個逗號。我已經附加了問題的屏幕截圖..

這裏是我的代碼:

<%if (creditCards.size() > 0) {%> 

<% for (CreditCardPaymentVO card : creditCards) {%> 


<%= card.getType()%> 
, 
<%}%> 
<%}%> 


<% if (eft != null) {%> 
<%= "EFT"%> 
<%} %> 

任何想法我怎麼能做出最後的信用卡逗號後不會出現? 感謝您的時間和精力!

left over comma

回答

3

小腳本不再被冷卻。試用JSTL:

<c:forEach var="creditCard" items="${creditCards}" varStatus="status"> 
    <c:out value="${creditCard.type}"/> 
    <c:if test="${!status.last || eft}">, </c:if> 
</c:forEach> 
<c:if test="${eft}">EFT</c:if> 

示例基於JSTL forEach separator

+0

如果非null(及其前導逗號也是有條件的),OP可能還會有條件地輸出'EFT'。 –

+0

@RobHruska:你說得對!現在是否正確?隨意編輯。 –

+0

看起來不錯。雖然你已經有了我的讚賞:)。我只是認爲這是造成OP難的部分原因。 –

1

我會使用JSTL如下推薦一下:

<c:forEach items="${creditCards}" var="creditCard" varStatus="index"> 
    <c:out value="${creditCard.type}" /> 
    <c:if test="${not index.last}">,</c:if> 
</c:forEach> 
0

我不熟悉的JSTL,但在其他編程語言,我通常會發現數組一個「加入」的方法。像在JS:

["VISA", "Mastercard", "Amex"].join(', '); 
=> "VISA, Mastercard, Amex" 

我很抱歉,如果在這種語言沒有這樣的方法。不過,它被標記爲Javascript。