无法将JSP标记的结果指定为c:set的值

Sth*_*ita 1 jsp jstl

我无法弄清楚设置<c:set>另一个JSP标记的结果的值.

这是我的代码:

  <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}."/>
Run Code Online (Sandbox Code Playgroud)

获得此例外:

org.apache.jasper.JasperException: Unterminated &lt;c:set tag
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么 ?有没有其他方法可以实现这种情况?

Bal*_*usC 5

您正在尝试将JSTL标记放在JSTL标记的属性中.

这没有任何意义.

您应该将JSTL标记放在JSTL标记的正文中.同样如此<c:set>.评估结果最终将成为价值<c:set>.

<c:set var="desc"><c:choose>...</c:choose><c:forEach>...</c:forEach>...</c:set>
Run Code Online (Sandbox Code Playgroud)