尝试将文件中的内容放在表格中

时间:2014-06-23 16:34:34

标签: java html jsp servlets

我有一些已经写入文件的信息,我试图通过servlet将它输出到一个表中,但它不会进入表中,而只是写在页面上。

下面是我打开文件的代码,这个文件是tab消除的,所以我需要拉出每一行并将内容放在自己单元格中的标签之间,但它只是打印在表格上方。

     // Create a file reader that to read the file
    FileReader fileReader = new FileReader(file);

    // Create the buffered reader stream
    BufferedReader bufferedReader = new BufferedReader(fileReader);

    // Print the table header for of the survey results
    out.println("<label> Here are the results of the survey up to now: </label>");
    out.println("<table border='1'>");
    out.println("<tr><th><b>Date/time</b></th>");
    out.println("<th><b>Animal</b></th>");
    out.println("<th><b>Relative</b></th>");
    out.println("<th><b>Color</b></th>");
    out.println("<th><b>Tv Show</b></th>");
    out.println("<th><b>Actor</b></th></tr>");

    // Print each record
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        String[] values = line.split("\t");
        out.println("<tr>");
        for (String value : values) {
            out.println("<td>" + value + "</td");
        }
        out.println("</tr>");
    }

1 个答案:

答案 0 :(得分:0)

  

我建议您在JSP / HTML中编写表示逻辑,而不是将业务逻辑与Servlet中的用户界面混合。

只需在JSP中移动HTML代码,然后将列表从Servlet传递给JSP,并使用JSP Standard Tag Library&amp;和JSP在JSP中迭代它。 JSP表达式语言。

注意:请勿忘记关闭Servlet中的资源,使用try-finally阻止或使用Java 7 The try-with-resources Statement


示例代码:

Servlet :( 使用Java 7 try-with-resources Statement

try(FileReader fileReader = new FileReader(file)){
    try(BufferedReader bufferedReader = new BufferedReader(fileReader)){
        List<String[]> list = new ArrayList<String[]>();

        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            String[] values = line.split("\t");
            list.add(values);
        }

        request.setAttribute("list", list);
        request.getRequestDispatcher("xyz.jsp").forward(request, response);  
    }
}

JSP:

<label> Here are the results of the survey up to now: </label>
<table border='1'>
    <tr>
        <th><b>Date/time</b></th>
        <th><b>Animal</b></th>
        <th><b>Relative</b></th>
        <th><b>Color</b></th>
        <th><b>Tv Show</b></th>
        <th><b>Actor</b></th>
    </tr>
    <c:forEach items="${list}" var="array">
        <tr>
            <c:forEach items="${array}" var="item">
                <td>${item}</td>
            </c:forEach>
        </tr>
    </c:forEach>
</table>