2015-07-28 41 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}."/> 

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