在jsp中以表格格式显示记录时遇到问题吗? [英] Problems in displaying record in tabular format in a jsp?

查看:68
本文介绍了在jsp中以表格格式显示记录时遇到问题吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我想从文本文件中读取数据并在JSP页面中以表格格式显示记录.我尝试了以下代码,但现在它将所有内容显示在一个列中.我想以适当的表格格式显示它.我在哪里做错了?请任何人纠正我的错误.

So, I want to read data from a text file and display the record in a table format in a JSP page. I tried the following code but for now it displays everything in one column. I want to display it a proper table format. Where am I doing wrong? Please can anyone correct my mistake.

<%@page import="java.io.File"%>
<%@page import="java.io.FileReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
    </body>
</html>
<%

 FileReader fr = new FileReader(new File(("C:\\Users\\user\\Documents\\NetBeansProjects\\JavaWebApp\\src\\java\\com\\servlets\\records.txt")));
  BufferedReader br = new BufferedReader(fr);
  String line = null;
  out.println("<table>");
  out.println("<tr>");

  while((line = br.readLine()) != null){
    //out.print(line + "<br/>");

    String[] data = line.split("\t");
    for (String val : data) {

        out.println("<td>" + val + "</td>");
        out.println("</tr>" );
  }
  }
    out.println("</table>");
  br.close();





%>

这是将记录保存在我的文本文件中的方式

These is how the records are saved in my text file

James  1  0098765  California
Maureen 2 0078657  Texas

我的代码结果显示如下

James
1
0098765
California
Maureen
2
0078657
Texas

推荐答案

首先,请勿使用Java代码生成HTML代码.首先读取和处理数据,然后使用JSTL进行显示:

First, do not use Java code to generate HTML code. Read and process data first, then use JSTL to display them:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.io.*, java.util.*"%>

<!DOCTYPE html>

<%
  List<List<String>> lines = new ArrayList<>();

  String path = "C:\\Users\\user\\Documents\\NetBeansProjects\\JavaWebApp\\src\\java\\com\\servlets\\records.txt";
  try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    while((line = br.readLine()) != null){
    List<String> values = new ArrayList<>();
    String[] data = line.split("\t");
    for (String val : data) {
      data.add(val);
    }
    lines.add(values);
  }
  request.addAttribute("lines", lines);
%>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <table>
      <c:forEach var="line" items="${lines}">
        <tr>
          <c:forEach var="value" items="${line}>
            <td>${value}</td>
          </c:forEach>
        </tr>
      </c:forEach>
    </table>
  </body>
</html>

第二,完全避免将业务逻辑(即读取和处理文件)放入JSP中-使用 MVC模式,或者至少将代码提取到一个单独的Java类中,然后调用该类的方法来获取要显示的数据.

Second, avoid putting business logic (i.e. reading and processing the file) into JSP at all - use MVC pattern, or at least extract the code into a separate Java class and call the method of that class to get the data for displaying.

这篇关于在jsp中以表格格式显示记录时遇到问题吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆