我有一些已经写入文件的信息,我试图通过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>");
}
答案 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>