为什么这个如果在Spring MVC JSP页面中的语句无法正常工作?

时间:2015-09-02 13:06:36

标签: java spring jsp spring-mvc el

我在 Spring MVC JSP 页面上相当新,我遇到以下问题。

在控制器类中,我将这2个集合添加到模型对象:

List<Integer> numeroProgettiWifiScuoleList = new ArrayList<>();
List<Integer> numeroProgettiPnsdScuoleList = new ArrayList<>();

通过这些方式:

model.addAttribute("numeroProgettiWifiScuoleList", numeroProgettiWifiScuoleList);
model.addAttribute("numeroProgettiPnsdScuoleList", numeroProgettiPnsdScuoleList);

它工作正常。问题是现在进入我的 JSP 页面我有类似的东西:

<c:forEach items="${listaScuoleDS}" var="scuola" varStatus="item">

    <c:if test="${numeroProgettiWifiScuoleList[item.index] == 0}">
        <p>Nessun progetto WIFI associato alla scuola</p>
    </c:if>

</c:forEach>

因此,正如您所看到的,进入 forEach 周期,我必须执行 if 测试,以检查 numeroProgettiWifiScuoleList 的值与迭代中的当前项相关的集合( item.index )等于0.在这种情况下显示文本。

但是这样做不起作用(

标签没有显示。)

为什么呢?我错过了什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你必须在IF条件下给出var名称。因为你使用JSTL标签来获取值。

<c:set var ="numeroProgettiWifiScuoleList" value=${numeroProgettiWifiScuoleList}">
    <c:forEach items="${listaScuoleDS}" var="scuola" varStatus="item">

        <c:if test="${scuola[item.index] == 0}">
            <p>Nessun progetto WIFI associato alla scuola</p>
        </c:if>

    </c:forEach>