无法在JSTL中执行break语句/等效语句

时间:2014-12-26 12:35:11

标签: jsp jstl break

我在JSP中有以下JSTL代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="js/postprojectrequirement.js"></script>
<link href="css/mystyle.css" type="text/css" rel="stylesheet" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<title>View Projects and Assign Employees</title>
</head>
<body>

    <p align="right">
        <a href="http://localhost:9090/HCLRMS/home.jsp">Home</a>&nbsp;&nbsp;<a
            href="http://localhost:9090/HCLRMS/logoutserv"
            onclick='alert("You will be logged out now!")'>Logout</a>
    </p>
    <h1>View Projects and Assign Employees</h1>

    <table align="center" border="1" >

        <tr align="center">
            <td><h3>Projects</h3></td>
            <td><h3>Requirement Details</h3></td>
            <td><h3>Last Date</h3></td>
        </tr>
        <c:forEach var="rootBean" items="${vpaessbal}" >
        <tr>

                <br>
                <br>

                <td>${rootBean.beanprojname} <br>
                <a href="">More Details</a></td>
                <td>
                    <table border="1">
                        <tr>
                            <th>Skill Set</th>
                            <th>Exp</th>
                            <th>No. of candidates</th>
                        </tr>


                        <c:forEach items="${rootBean.vpaerdclist}" var="subBean" varStatus="i">

                                <tr>

                                <td>${subBean.skill}</td>

                                <td>${subBean.exp}</td>

                                <td>${subBean.ncand}</td>

                            </tr>

                        </c:forEach>


                    </table>
                </td>
                <td>${rootBean.beanlastdate}</td>
            </tr>

        </c:forEach>
    </table>



</body>
</html>

我的输出为:

enter image description here

但我不想要打印第二行。

我用谷歌搜索,发现我们不能写休息; JSTL中的语句,我也不想使用任何类型的scriptlet。

1 个答案:

答案 0 :(得分:0)

在c:forEach标记上设置iterator status属性。

<c:forEach var="rootBean" items="${vpaessbal}" status="rowStatus">...</c:forEach>

然后使用rowStatus.count来测试当前迭代。

 <c:if test="${rowStatus.count != 2}">..</c:if>

所以你会有

   <c:forEach var="rootBean" items="${vpaessbal}" status="rowStatus" >
    <c:if test="${rowStatus.count != 2}">
            <tr>

                    <br>
                    <br>

                    <td>${rootBean.beanprojname} <br>
                    <a href="">More Details</a></td>
                    <td>
                        <table border="1">
                            <tr>
                                <th>Skill Set</th>
                                <th>Exp</th>
                                <th>No. of candidates</th>
                            </tr>


                            <c:forEach items="${rootBean.vpaerdclist}" var="subBean" varStatus="i">

                                    <tr>

                                    <td>${subBean.skill}</td>

                                    <td>${subBean.exp}</td>

                                    <td>${subBean.ncand}</td>

                                </tr>

                            </c:forEach>


                        </table>
                    </td>
                    <td>${rootBean.beanlastdate}</td>
                </tr>
               </c:if>
            </c:forEach>

请记住

count - starts with 1 
index - starts with 0.