如何在jsp中制作漂亮的表格

时间:2015-01-01 05:01:29

标签: java html jsp

我的表有问题我有一个长列,我不知道如何重构我的代码以将每个resultSet放在标题下的单独列中。我已经尝试将所有内容放在一个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>`

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

2 个答案:

答案 0 :(得分:1)

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

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());

答案 1 :(得分:0)

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

List<Item> list = ...

在jsp中你可以使用stringBuffer甚至是一些脏代码;)

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

使用一些模板引擎将使世界变得更加容易。像thymeleaf这样的东西。