您的位置:首页 > Web前端 > JavaScript

关于别人反映<c:if> 在<c:forEach>标签在jsp里不起作用问题

2017-05-29 10:24 483 查看
<c:forEach>标签代码:
<c:if>代码:(这里进行判断)
</c:forEach>结果:

<c:if>结果:无论有没用户,都是这样不会变的!

FOREACH标签部分.

首先确认MAP中有没有取得数据.

<c:forEach [var="varName"] items="" [varStatus="varStatusName"]

     FOREACH标签含义:  items存放被迭代的集合对象, var用来存放现在指到的成员。

  3. var元素输出的参数需要与MAP中存放的参数对应,(通常用一个JAVABEAN对像封装放在LIST等集合对像中).案例中的,NAME等值是否在JAVABEAN中存在.如果存在,EL表达式写法为:
${entry.name}即可直接输入,其他值也是一样.

IF标签部分.

  EL表达式有自己的判断方式,无法直接用==,!=,>=,<=直接判断.

  如果要判断封装对像是否为空.请用empty关键字....

以下是IF标签与FOREACH综合用法的示例:
<!-- 如果集合中不为空,输出数据! -->

<c:if test="${!empty adminlist}">

    <c:forEach items="${adminlist}" var="list">

        <tr>

              <td>${list.id}</td>

              <td>${list.name}</td>

           <td>${list.pwd}</td>

        </tr>

   </c:forEach>

 </c:if>

 

<!-- 如果集合中为空,直接在HTML中输出提示! -->

 <c:if test="${empty adminlist}">

    未能找到数据!

 </c:if>

例子:

为了能更好的显示出FOREACH的效果.通常先用choose标签进行判断,以下是JSP页面中的完整标签片段示例:(IF标签不再举例.)

<table cellpadding="5" cellspacing="1" border="0" width="100%" align="center">

    <tr align="center">

      <td>ID</td>

      <td>用户帐号</td>

      <td>用户密码</td>

      <td colspan="2">管理</td>

    </tr>

 <c:choose>

   <c:when test="${!empty userlist}">

    <c:forEach items="${userlist}" var="list">

        <tr>

          <td>${list.id}</td>

          <td>${list.name}</td>

          <td>${list.pwd}</td>

          <td>

           <a href="UserEdit.jspx?action=update&id=${list.id}">编缉</a>

      </td>

          <td>

          <div onClick="return del();">

        <a href="UserEdit.jspx?action=delete&id=${list.id}">删除</a>

              </div>

      </td>

        </tr>

   </c:forEach>

   </c:when>

  <c:otherwise>

         <tr>

          <td colspan="5">未能找到符合条件的数据!</td>

      </tr>

  </c:otherwise>   

</c:choose>

</table>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: