Jsp JSTL FoEach检查RequestScope中的containsIgnoreCase集
我在requestScope中通过servlet设置了一个城市列表 这是我的密码 我已经添加了所需的标记库 你能告诉我为什么集装箱箱坏了吗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
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>
在此处为纽约添加颜色
在此处添加颜色
希望有帮助