.jsp动态表创建

时间:2019-07-29 20:45:31

标签: java jsp servlets

我正在尝试在.jsp中创建一个动态表。我一直试图通过以下方式通过scriptlet来做到这一点( 这是伪代码 ):

<%
PrintWriter writer = response.getWriter();

writer.println("<table>");

while(records in request object){
    writer.println("<tr>" + request.getAttribute().toString() + "</tr>");
    }

writer.println("</table");
writer.close();
%>

虽然上述方法可以并且确实可行,但不鼓励这样做,并且可能不是完成此任务的最佳方法。

我的问题是-是否有更好的方法来创建这种动态内容?

3 个答案:

答案 0 :(得分:2)

可以不用脚本来完成:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:if test="${not empty request.records}">

  <table>
    <c:forEach items="${request.records}" var="record">
       <tr><td> ${record} </td></tr>
    </c:forEach>
  </table>

</c:if>

答案 1 :(得分:1)

您需要在类路径上包括JSTL依赖关系,并在Spring中对其进行配置。

如果您已经在Spring中对其进行了配置,则可以通过以下方式动态创建tds:

<table>
<thead>
    <tr>
        <th>Item1</th>
        <th>Item2</th>
        <th>Item3</th>
    </tr>
</thead>
<tbody>
    <c: forEach items="${menus}" var="menu" varStatus="status">
                            <tr>
        <td>${menu.item1}</td>
        <td>${menu.item2}</td>
        <td>${menu.item3}</td>
    </tr>
    </c: forEach>
</tbody>                        
</table >

${menus}是来自后端的列表。它是POJO的列表,包含3个字段item1,item2和item3。 您还需要在.jsp文件中包含c名称空间:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

互联网上有大量此类示例。只要看一下Spring MVC和JSTL以及Table。您会发现很多结果。

答案 2 :(得分:0)

您可以使用“ out”打印到响应。你为什么要做第一行?你从哪里得到的?

您可以执行以下操作:

<%
out.println("<table>");

while (records in request object){
    out.println("<tr>" + request.getAttribute().toString() + "</tr>");
}

out.println("</table>");
%>