首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >限制c:在其体内使用c:if条件时的最大值

限制c:在其体内使用c:if条件时的最大值
EN

Stack Overflow用户
提问于 2018-03-16 07:02:33
回答 1查看 1.2K关注 0票数 2

我对如果条件有问题。我从DB获得数据,所有内容都在两个网站表格上查看。网站上的表格应仅限于3行。在DB中有一个名为“screen”的列。“屏幕”可以是“第一”、“第二”或“两者兼有”。“第一”是第一表,“第二”是第二表,“两者”都是指两个表。例如,如果我将数据添加为“first”屏幕,那么它应该在第一个表中查看,如果我将数据添加为‘都是’,则应该在两个表中查看它。我将其限制为3行,因此问题是,如果添加3“first”屏幕和1‘都’屏幕,则在第一个表上看到3行,而在第二个屏幕上没有任何行。该代码用于第一个表:

代码语言:javascript
运行
复制
<c:forEach items="${foo}" var="c" varStatus="status">
      <c:if test="${status.count <= 3 && c.screen.equals('both') || status.count <= 3 && c.screen.equals('first')}">

            <tr><td>something_bla_bla</td></tr>

      </c:if>
 </c:forEach>

第二个表的代码几乎是相同的--差异仅仅是c.screen.equals(' second ')添加3 'first‘表示3行--没关系,添加3’都‘显示了3行--这是可以的,但是如果我添加3 'first’和1‘都’,那么应该在第二个表中查看‘这两个’记录,而不是因为这三个限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-16 19:13:33

这只是一个计算你输出了多少行的问题。例如:

代码语言:javascript
运行
复制
<c:set var="count" value="0"/>
<c:forTokens items="first,second,second,both,first,both,second"
             delims=","
             var="item">
  <c:if test="${count lt 3 and 'both,first'.contains(item)}">
    <c:out value="${item}"/>
    <c:set var="count" value="${count + 1}"/>
  </c:if>
</c:forTokens>

<br/>

<c:set var="count" value="0"/>
<c:forTokens items="first,second,second,both,first,both,second"
             delims=","
             var="item">
  <c:if test="${count lt 3 and 'both,second'.contains(item)}">
    <c:out value="${item}"/>
    <c:set var="count" value="${count + 1}"/>
  </c:if>
</c:forTokens>

这将输出(忽略空格):

代码语言:javascript
运行
复制
first both first<br/>
second second both

请注意,我使用的是'both,first'.contains(item),它具有与(item eq 'both' or item eq 'first')相同的效果,但更短(特别是如果您需要检查移动字符串)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49314913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档