Jsp JSTL FoEach检查RequestScope中的containsIgnoreCase集

Jsp JSTL FoEach检查RequestScope中的containsIgnoreCase集,jsp,jstl,Jsp,Jstl,我在requestScope中通过servlet设置了一个城市列表 这是我的密码 我已经添加了所需的标记库 你能告诉我为什么集装箱箱坏了吗 public class City { private Long id; private String name; private int population; // getters and setters } // <c:forEach items="${requestScope.cityList}" v

我在requestScope中通过servlet设置了一个城市列表

这是我的密码

我已经添加了所需的标记库

你能告诉我为什么集装箱箱坏了吗

public class City {

    private Long id;
    private String name;
    private int population;

    // getters and setters 
}

// 

<c:forEach items="${requestScope.cityList}" var="city">
            <tr>

        <c:if test = "${fn:containsIgnoreCase(${city.name}, 'NewYork')}">
         <p>Add a Color Here for NewYork <p>
      </c:if>

            <c:if test = "${fn:containsIgnoreCase(${city.name}, 'Houston')}">
         <p>Add a Color Here Houston <p>
      </c:if>


                <td><c:out value="${city.id}"></c:out></td>
            <td><c:out value="${city.name}"></c:out></td>
            <td><c:out value="${city.population}"></c:out></td>
        </tr>
        </c:forEach>
公共级城市{
私人长id;
私有字符串名称;
私人人口;
//接球手和接球手
}
// 
在此处为纽约添加颜色
在此处添加颜色

应该是
${fn:containsIgnoreCase(city.name,'NewYork')}
。您已经在JSP EL表达式中,因此在该表达式中再次使用
${}
是无效的。

应该是
${fn:containsIgnoreCase(city.name,'NewYork')}
。您已经在JSP EL表达式中,因此在该表达式中再次使用
${}
是无效的。

containsIgnoreCase无效,因为您试图在另一个表达式(
${city.name}
中打开表达式(
${fn:containsIgnoreCase()}

您应该将代码简化为:

<c:if test = "${fn:containsIgnoreCase(city.name, 'Houston')}">

containsIgnoreCase无效,因为您试图在另一个表达式(
${city.name}
)中打开一个表达式(
${fn:containsIgnoreCase()}

您应该将代码简化为:

<c:if test = "${fn:containsIgnoreCase(city.name, 'Houston')}">

不能嵌套EL表达式

${city.name}
在另一个EL表达式中时将计算为null。这就是它不起作用的原因

您可以通过以下方式连接它们:

${foo}${bar}

在您的情况下,可以在forEach块中设置一个局部变量,如下所示:

    <c:forEach items="${requestScope.cityList}" var="city">
 <c:set var="cityVar" value="${city.name}" />
                <tr>

            <c:if test = "${fn:containsIgnoreCase(cityVar, 'NewYork')}">
             <p>Add a Color Here for NewYork <p>
          </c:if>

                <c:if test = "${fn:containsIgnoreCase(cityVar, 'Houston')}">
             <p>Add a Color Here Houston <p>
          </c:if>


                    <td><c:out value="${city.id}"></c:out></td>
                <td><c:out value="${city.name}"></c:out></td>
                <td><c:out value="${city.population}"></c:out></td>
            </tr>
            </c:forEach>

在此处为纽约添加颜色
在此处添加颜色

希望这对你有所帮助,因为你不能嵌套EL表达式

${city.name}
在另一个EL表达式中时将计算为null。这就是它不起作用的原因

您可以通过以下方式连接它们:

${foo}${bar}

在您的情况下,可以在forEach块中设置一个局部变量,如下所示:

    <c:forEach items="${requestScope.cityList}" var="city">
 <c:set var="cityVar" value="${city.name}" />
                <tr>

            <c:if test = "${fn:containsIgnoreCase(cityVar, 'NewYork')}">
             <p>Add a Color Here for NewYork <p>
          </c:if>

                <c:if test = "${fn:containsIgnoreCase(cityVar, 'Houston')}">
             <p>Add a Color Here Houston <p>
          </c:if>


                    <td><c:out value="${city.id}"></c:out></td>
                <td><c:out value="${city.name}"></c:out></td>
                <td><c:out value="${city.population}"></c:out></td>
            </tr>
            </c:forEach>

在此处为纽约添加颜色
在此处添加颜色
希望有帮助