Jsp 如何测试字符串是否包含EL中的给定值?
我有一个字符串列表,并将其设置为会话:Jsp 如何测试字符串是否包含EL中的给定值?,jsp,jstl,el,Jsp,Jstl,El,我有一个字符串列表,并将其设置为会话: session.setAttribute("datas", result.getBody().getDatas()); 然后,我想签入一个JSP,例如,如果datas属性中没有包含单词“apple”。如果未包含,则打印未包含的邮件。最初,我尝试这样做: <c:forEach items="${datas}" var="data"> <c:if test="${data!='apple'}">
session.setAttribute("datas", result.getBody().getDatas());
然后,我想签入一个JSP,例如,如果datas属性中没有包含单词“apple”。如果未包含,则打印未包含的邮件。最初,我尝试这样做:
<c:forEach items="${datas}" var="data">
<c:if test="${data!='apple'}">
<p> Doesn't contained</p>
</c:if>
<c:for>
不包含
但如果会话包含以下值,则使用上述代码:
苹果
香蕉
柠檬
将消息“未包含”打印两次。我知道这是正常的,但我如何处理这件事才能得到我想要的?代码=代码>测试精确的不等式。您需要改用or函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
不包含“苹果”
您需要告诉我们fn:toLowerCase():
<c:forEach items="${datas}" var="data">
<c:if test="${fn:toLowerCase(data) ne 'apple'}">
<p>Doesn't contain</p>
</c:if>
</c:forEach>
不包含
使用fn:containsIgnoreCase()将检查部分匹配(给定字符串中是否存在子字符串)。所以,如果你的数据是[“菠萝”,“香蕉”,“柠檬],例如,你也会得到一个匹配。我认为您只想将“apple”作为一个完整的字符串进行匹配。不要忘记在jsp的顶部声明相关的标记库
,否则它将抛出一个相当自我解释且非常容易出错的异常/错误。
<c:forEach items="${datas}" var="data">
<c:if test="${fn:toLowerCase(data) ne 'apple'}">
<p>Doesn't contain</p>
</c:if>
</c:forEach>