我如何在servlet类中使用for循环?

时间:2015-10-23 04:55:50

标签: java html servlets

我有一个索引文件和一个servlet类文件。我需要在从索引向servlet类提交信息后创建一个表。我提交表格。

        <form name="form" method="post" action="servlet">
        Number: <input type="number" name="table"/>
        <input type="submit" value="Submit"/>
        </form> 

此信息作为数字传递给servlet。我需要用数字制作表格。如果是1,则为1行,如果是5,则为5行。我需要在servlet页面上使用for循环,但我被卡住了。我尝试了类似下面的内容,但它不起作用。

<table>
      <% for(int row=1; row <= 5; row++) { %>
      <tr>
      </tr>
      <% } %>
 </table>

1 个答案:

答案 0 :(得分:2)

尽量避免使用Scriplets。您可以使用forEach JSTL标记在jsp文件中循环。

在servlet中设置count作为请求属性,然后在jsp中访问它,如下所示:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<c:forEach begin="0" end="${count}" varStatus="loop">
    Index: ${loop.index}<br/>
</c:forEach>

阅读How to loop over something a specified number of times in JSTL?

完整示例:

HTML:

<form name="form" method="post" action="servlet">
    Number: <input type="number" name="table"/>
    <input type="submit" value="Submit"/>
 </form> 

的Servlet

//inside doPost method

    request.setAttribute("count", request.getParameter("table");

    // redirect to jsp 

    String nextJSP = "/table.jsp";
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    dispatcher.forward(request,response);

JSP:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<c:forEach begin="0" end="${count}" varStatus="loop">
    Index: ${loop.index}<br/>
</c:forEach>