我对如果条件有问题。我从DB获得数据,所有内容都在两个网站表格上查看。网站上的表格应仅限于3行。在DB中有一个名为“screen”的列。“屏幕”可以是“第一”、“第二”或“两者兼有”。“第一”是第一表,“第二”是第二表,“两者”都是指两个表。例如,如果我将数据添加为“first”屏幕,那么它应该在第一个表中查看,如果我将数据添加为‘都是’,则应该在两个表中查看它。我将其限制为3行,因此问题是,如果添加3“first”屏幕和1‘都’屏幕,则在第一个表上看到3行,而在第二个屏幕上没有任何行。该代码用于第一个表:
<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‘都’,那么应该在第二个表中查看‘这两个’记录,而不是因为这三个限制。
发布于 2018-03-16 19:13:33
这只是一个计算你输出了多少行的问题。例如:
<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>这将输出(忽略空格):
first both first<br/>
second second both请注意,我使用的是'both,first'.contains(item),它具有与(item eq 'both' or item eq 'first')相同的效果,但更短(特别是如果您需要检查移动字符串)。
https://stackoverflow.com/questions/49314913
复制相似问题