java-ee - JSTL test 为什么没起作用

查看:164
本文介绍了java-ee - JSTL test 为什么没起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

Servlet代码:

    List<FoodType> foodList = service.findAll();
    request.setAttribute("foodList", foodList);
    // 2. 跳转
    uri = "/sys/type/foodtype_list.jsp";
    request.getRequestDispatcher(uri).forward(request, response);


以下是jsp的显示代码:

<c:choose>
        <c:when test="${not empty requestScope.foodList} ">
                 
            <c:forEach items="${requestScope.foodList }" var="foodType" varStatus="vs">
                <tr>
                    <td>${vs.count }</td>
                    <td>${foodType.foodTypeName }</td>
                    <td><a
                        href="${pageContext.request.contextPath }/FoodTypeServlet?method=editview&id=${foodType.id}"
                        class="FunctionButton">更新</a> <a
                        href="${pageContext.request.contextPath }/FoodTypeServlet?method=delete&id=${foodType.id}"
                        class="FunctionButton">删除</a></td>
                </tr>
            </c:forEach>
                
        </c:when>
        <c:otherwise>
            <td colspan="3">暂未添加任何菜系!</td>
        </c:otherwise>
</c:choose>


Servlet传过来的foodList是有值的,如果直接用 forEach 是可以显示的 为什么加了 test 判定就不行了呢? 困扰了很久 网上也没有找到答案 希望有大神可以解答!

解决方案

@alexnevsky 谢答 虽然没有说出真正的错误原因 但是我也是因为试了你的回答之后才找出来出错原因的 真正引起错误的原因竟然是

<c:when test="${not empty requestScope.foodList} ">

这句后面的引号前多了一个空格!!!
以前并没有注意到这个细节 学习的时候也没有看到 不过以后就记住了

这篇关于java-ee - JSTL test 为什么没起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆