Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何测试字符串是否包含EL中的给定值?_Jsp_Jstl_El - Fatal编程技术网

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>