2015-07-28 28 views
1

我無法想出將<c:set>的值設置爲另一個JSP標記的結果。無法將JSP標記的結果賦值爲c的值:set

這裏是我的代碼:

<c:set var="desc" value="<c:choose> 
    <c:when test="${model.totalHits < 200}">${model.totalHits}</c:when> 
    <c:otherwise>${model.results.size()}</c:otherwise></c:choose> 
    positions at 
    <c:forEach items="${model.metaCompanies}" var='item' varStatus='status'> 
    ${item} including ${model.metaDescsingleCompany} 
    </c:forEach> 
    related to ${model.querymetacompany}."/> 

獲取此異常:

org.apache.jasper.JasperException: Unterminated &lt;c:set tag 

難道我做錯了什麼?有沒有其他方法可以實現這種場景?

回答

3

您試圖將JSTL標籤放在JSTL標籤的屬性中。

這沒有任何意義。

您應該將JSTL標籤放在JSTL標籤的正文內。 <c:set>也是如此。評估結果最終將成爲<c:set>的值。

<c:set var="desc"><c:choose>...</c:choose><c:forEach>...</c:forEach>...</c:set> 
+0

太棒了!謝謝@BalusC – Sthita

2

正如BalusC所提到的,您不應該在屬性中使用標籤。

在這裏你可以找到你的代碼也可能是這樣的:

<c:set var="totalHits" value="${model.results.size()}"/> 

<c:if test="${model.totalHits < 200}"> 
    <c:set var="totalHits" value="${model.totalHits}"/> 
</c:if> 

<c:set var="items" value=""/> 
<c:forEach items="${model.metaCompanies}" var='item' varStatus='status'> 
    <c:set var="items" value="${items} ${item} including ${model.metaDescsingleCompany}"/> 
</c:forEach> 

<c:set var="desc" value="${totalHits} positions at ${items} related to ${model.querymetacompany}."/> 

我希望我得到了你的意圖吧!

相關問題