2017-04-20 14 views
0

我有我分裂WRT .和數組imageUrlParts作爲存儲變量imageUrl如下:如何爲jstl中的數組的特定索引分配一些值?

<c:set var="imageUrlParts" value="${fn:split(imageUrl, '.')}" /> 

現在,我只是想追加更多的東西到了倒數第二個令牌。例如,如果網址是a.b.c.d那麼我想使它成爲a.b.cSOMETHINGADDED.d。所以我做了以下內容:

<c:set var="len" value="${fn:length(imageUrlParts)}" /> 
<c:set var="imageUrlParts[len-2]" value="${imageUrlParts[len-2]}SOMETHINGADDED" /> 
<c:set var="imageUrl" value="${fn:join(imageUrlParts, '.')}" /> 

但它不能正常工作,如在,它被重建作爲a.b.c.d本身a.b.cSOMETHINGADDED.d,這意味着以下行

<c:set var="imageUrlParts[len-2]" value="${imageUrlParts[len-2]}SOMETHINGADDED" /> 

是不工作(當然)。你能告訴我應該如何實現我想做的事情嗎?

任何形式的幫助將不勝感激。

回答

0

這裏是演示代碼。如果您不想使用第一行,那麼您必須將forEach標記碼放在一行上。這將避免輸出字符串中的空格。

<%@ page trimDirectiveWhitespaces="true" %> 
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %> 
<c:set var="imageUrl" value="a.b.c.d" /> 
<c:set var="imageUrlParts" value="${fn:split(imageUrl, '.')}" /> 
<c:set var="len" value="${fn:length(imageUrlParts)}" /> 
<c:forEach var="part" items="${imageUrlParts}" varStatus="status"> 
    ${part} 
<c:if test="${(len -1) == status.count}">SOMETHINGADDED</c:if> 
<c:if test="${!status.last}">.</c:if> 
</c:forEach> 
相關問題