java - 如何一次打印一行值,如何在 JSTL 中迭代列表

标签 java jsp collections jstl

我正在开发 Web 应用程序。在 jsp 页面中,我正在使用 Scriptlets 标记迭代列表。但我想在 JSTL 中执行相同的结果。我该怎么做?

这里的列表包含数据库的列名。

这里eList包含表数据(表的值)

下面是我的 JSP 代码:

  <table border="1" cellpadding="5" cellspacing="5">
            <tbody>

                <tr>
                    <th>SNO</th>
                    <c:forEach var="column" items="${list}">
                        <th> ${column} </th>
                    </c:forEach>
                </tr>

 //For above list JSTL exectude successfully but while doing below list is not possible

                <%List eList =(Vector)request.getAttribute("list1");
                    Integer s1 = (Integer) request.getAttribute("sno");
                    Iterator it = eList.iterator();
                    while (it.hasNext()) {
                %>
                <tr> <td><%=++s1%></td><%
                    Object[] row = (Object[]) it.next();
                    for (int k = 0; k < row.length; k++) {
               %> 
                    <td> <%=row[k]%></td>
                    <%    }%>                   
                </tr>
                <%
                    }
                %> 
            </tbody>
        </table>

服务代码

获取表格数据.java:

public class GetTableData extends HttpServlet
{
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {
        Query query1 = entityManager.createNativeQuery("select * from "
                + schemaName + "." + tableName + "");

        totalNumberOfRecords = query1.getResultList().size();
        query1.setFirstResult(newPageIndex);
        query1.setMaxResults(numberOfRecordsPerPage);

        List list1 = query1.getResultList();
        System.out.println("testszenario" + testszenario.size());
        System.out.println(testszenario);

        request.setAttribute("list1", list1);
        request.getRequestDispatcher("/TableResult.jsp").forward(request,
                response);
    }
}

我怎样才能用 JSTL 标签做那个。非常感谢你

最佳答案

list1 在请求范围内,因此您可以像以前一样进行迭代,以打印 SR.No。你可以使用 LoopTagStatus

<c:forEach var="data" items="${list1}" varStatus="loop">
      <td> ${loop.count} </td>
      <td> ${data} </td>
</c:forEach>

记住

${loop.index} starts from 0
${loop.count} starts from 1

另见

关于java - 如何一次打印一行值,如何在 JSTL 中迭代列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22142731/

相关文章:

java - 当 Data 实现 Comparator 接口(interface)时,为什么编译器会提示使用不可比较元素构建排序集合?

java - 如何从 HashMap 的数组中获取索引?

java - Threads之间划分一个奇数

java - 将值从 html 页面传递到 java 类的最佳方法是什么?

java - 如何打印数组中出现次数最多的 5 个数字?

javascript - 在struts中提交后重置表单数据

java - 局部方法变量,无法识别

java - 如何在 JSP 中将值插入数据库以进行 derby?

jsp - Glassfish 4.1 错误 : session. 使空指针异常无效

java - 关于集合中比较器的说明