如何在 jsp 中表现得很好 table

How to make nice table in jsp

我的table有问题我有一个很长的专栏,我不知道如何重组我的代码以将每个结果集放在标题下的单独栏中。我已经尝试将所有内容放在一个 for 循环中,但这只给了我一行我知道使用 dao 会更容易但是当我尝试使用它时我根本没有结果因为我现在有了它们我更愿意继续这个代码 在我的 servlet 中,我有:

`           
while(resultSet.next()){
                list.add(resultSet.getString("recording_id"));
                list1.add(resultSet.getString("artist_name"));
                list2.add(resultSet.getString("title"));
                list3.add(resultSet.getString("category"));
                list4.add(resultSet.getString("image_name"));
                list5.add(resultSet.getString("num_tracks"));
                list6.add(resultSet.getString("price"));
                list7.add(resultSet.getString("stock_count"));
            }           
        request.setAttribute("list", list);
        request.setAttribute("list1", list1);
        request.setAttribute("list2", list2);
        request.setAttribute("list3", list3);
        request.setAttribute("list4", list4);
        request.setAttribute("list5", list5);
        request.setAttribute("list6", list6);
        request.setAttribute("list7", list7);`

并在 jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='./css/Congo.css' type='text/css' />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
        <TABLE BORDER=1>
            <TR BGCOLOR='#FFAD00'>
                            <TH>1</TH>
                            <TH>2</TH>
                            <TH>3</TH>
                            <TH>4</TH>
                            <TH>5</TH>
                            <TH>6</TH>
                            <TH>7</TH>
                            <TH>8</TH>

        <%
                            ArrayList<String> columns = (ArrayList<String>)request.getAttribute("list");
                            ArrayList<String> columns1 = (ArrayList<String>)request.getAttribute("list1");
                            ArrayList<String> columns2 = (ArrayList<String>)request.getAttribute("list2");
                            ArrayList<String> columns3 = (ArrayList<String>)request.getAttribute("list3");
                            ArrayList<String> columns4 = (ArrayList<String>)request.getAttribute("list4");
                            ArrayList<String> columns5 = (ArrayList<String>)request.getAttribute("list5");
                            ArrayList<String> columns6 = (ArrayList<String>)request.getAttribute("list6");
                            ArrayList<String> columns7 = (ArrayList<String>)request.getAttribute("list7");

            if(columns != null && !columns.isEmpty()){
                for(String columnName: columns ){
                   out.println("<TR>");
                   out.println("<TD>"+columnName+"</TD>");
                   out.println("</TR>");
                }
            }
            if(columns1 != null && !columns1.isEmpty()){
                for(String columnName: columns1 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

            if(columns2 != null && !columns2.isEmpty()){
                for(String columnName: columns2 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");

                    out.println("</tr>");

                 }
            }

            if(columns3 != null && !columns3.isEmpty()){
                for(String columnName: columns3 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

            out.println("<tr>");
            if(columns4 != null && !columns4.isEmpty()){
                for(String columnName: columns4 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

            if(columns5 != null && !columns5.isEmpty()){
                for(String columnName: columns5 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

            out.println("<tr>");
            if(columns6 != null && !columns6.isEmpty()){
                for(String columnName: columns6 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

            if(columns7 != null && !columns7.isEmpty()){
                for(String columnName: columns7 ){
                    out.println("<tr>");

                    out.println("<TD>"+columnName+"</TD>");
                    out.println("</tr>");

                 }
            }

        %>

</TR>
</TABLE>
</body>
</html>`

如果您有任何想法,请分享。

如果您只是想让您的代码正常工作,您可以使用它。

StringBuffer sb = new StringBuffer();
for(int i=0;i<columns.size();++i){
sb.append("<tr>");
sb.append("<td>");sb.append(columns.get(i); sb.append("</td>");
sb.append("<td>");sb.append(columns1.get(i); sb.append("</td>");
sb.append("<td>");sb.append(columns2.get(i); sb.append("</td>");
sb.append("<td>");sb.append(columns3.get(i); sb.append("</td>");
... // do same with other arraylist
sb.append("</tr>");
}

 out.println(sb.toString());

使用 类 的列表而不是 4 或 5 个列表(或者至少是一个 hashmap)

List<Item> list = ...

在 jsp 中,您可以使用 stringBuffer 或什至一些肮脏的编码 ;)

<table>
<% for (Item item : (List<Item>) request.getAttribute("list") ) { %>
  <td> <%=item.getsomething()%></td>
  ....
<% }%>

使用一些模板引擎会让世界变得更简单。可能是 thymeleaf 之类的东西。