如果JSP中存在某些值,则需要隐藏一个元素
值存储在列表中,所以我尝试了:
<c:if test="${ mylist.contains( myValue ) }">style='display:none;'</c:if>
但是,它不起作用。
如何评估列表是否包含JSTL中的值,列表和值是字符串。
可悲的是,我认为JSTL除了支持所有元素的迭代来解决这个问题外,不支持任何其他功能。过去,我在核心标签库中使用过forEach方法:
<c:set var="contains" value="false" />
<c:forEach var="item" items="${myList}">
<c:if test="${item eq myValue}">
<c:set var="contains" value="true" />
</c:if>
</c:forEach>
运行之后,如果myList包含myValue,则$ {contains}将等于“ true”。
如果列表很小,效果很好。只需意识到以这种方式执行会损失性能。
是的,如果您的身高够高的话。我已将其用于收集10到20件事,并且没有遇到任何性能问题。我认为更糟糕的是JSTL的行数。不过,我认为这是不设置自己的TLD的唯一方法(这不太困难,可能很值得)。