【问题标题】:String builder into html table format将字符串生成器转换为 html 表格格式
【发布时间】:2013-03-28 09:14:51
【问题描述】:

我正在创建一个 servlet 来显示我制作的一个小程序的前端,在这个程序中,我有一个 LinkedList 调用执行队列,我将它放在一个字符串生成器中。

 public String getJobsForPrint() {
        Iterator<JobRequest> it = ExecutionQueue.iterator();
        StringBuilder result = new StringBuilder();
        String NEW_LINE = System.getProperty("line.separator");

        while (it.hasNext()) {
            JobRequest temp = it.next();
            result.append(this.getClass().getName()).append(" Object {").append(NEW_LINE);
            result.append(" User ID: ").append(temp.getUserID());
            result.append(" Start Date: ").append(temp.getStartDate());
            result.append(" End Date: ").append(temp.getEndDate());
            result.append(" Deadline Date: ").append(temp.getDeadDate());
            result.append(" Department: ").append(temp.getDepartment());
            result.append(" Project Name: ").append(temp.getProjectName());
            result.append(" Project Application: ").append(temp.getProjectApplication());
            result.append(" Priority: ").append(temp.getPriority());
            result.append(" Cores: ").append(temp.getCores());
            result.append(" Disk Space: ").append(temp.getDiskSpace());
            result.append(" Analysis: ").append(temp.getAnaylsis()).append(NEW_LINE);
            result.append("}");
        }
        return result.toString();

在我的 servlet 方面,我通过以下方式调用字符串:

protected void processExecutionQueue(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE html>");
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Execution Queue</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<div>");
    out.println("<div style='position:absolute; top:20px; right: 20px;'><a href='/ProjectAndBackend/index.jsp'>LOGOUT</a></div>");
    out.println("</div>");
    out.println("<p>Queue:</p>");           
    out.println("Execution Queue:" + SystemServlet.getScheduler().getJobsForPrint());               
    out.println("</body>");
    out.println("</html>");
}

所以现在我将字符串一个接一个地显示,所有数据都取自链表。我希望在网页端,能够获取该数据并将其放入表格中,以便它看起来更整洁,而不仅仅是将字符串扔到网页上。

我将如何实现一个 html 以在某些方面显示字符串的特定元素 因此,在下面的示例中,我有标题,然后数据从字符串中获取元素并继续写出,直到显示来自迭代器的所有数据

<table border="1">
<tr>
<th>User ID</th>
<th>Start Date</th>
</tr>
<tr>
<td>User ID DATA</td>
<td>Start Date DATA</td>
</tr>

或者如果任何人都可以指导我看一个示例,因为我目前的搜索找不到任何示例。

【问题讨论】:

  • 您在上面做了完全相同的事情。获取您的用户列表,对其进行迭代并创建一个字符串"th" + user.getId() + "&lt;/th&gt;",然后将其添加到您的 html 字符串中。 注意这是你能做的最糟糕的事情。阅读:stackoverflow.com/tags/servlets/info
  • 如果您不想在 Java 代码中创建表格 HTML,您将需要使用 JSP 或 JSF 之类的东西。如果你想用你的 Java 代码来做,按照 SotiriosDelimanolis 的建议去做。

标签: java html servlets html-table


【解决方案1】:

当您构建 StringBuilder 时,使用 HTML 标记将每个标记放置在一行中。

代码应该是这样的

StringBuilder result = new StringBuilder();
result.append("<tr><td>").append(User ID DATA).append("</td><td>").append(Start Date DATA).append("</td></tr>");

注意:

1.您需要在processExecutionQueue() 方法中创建基本的html 和表头列。 2.getJobsForPrint()方法只需要创建数据行。

所以当结果从getJobsForPrint() 传递过来时,它将被嵌入到其他 HTML 文件中。

希望您可以使用此建议完成代码。

【讨论】:

  • 是的,基本上你可以在 getJobsForPrint() 方法中创建你希望 servlet 显示的 html 代码。尽管修改getJobsForPrint() 会更简洁,以便它为您提供字符串的List,而不是return 的单个字符串。在您调用getJobsForPrint() 的servlet 中,您按照Joseph Selvaraj 的建议将列表条目放入一个html 表中。然后,Servlet 将自动转换为您可以在浏览器中看到的 html 站点。
  • 太好了,感谢您的快速回复,设法按照您建议 Joseph 的方式实现它,现在将尝试自己做建议 GameDroids 然后我知道如何实现几种方法,谢谢你
猜你喜欢
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
相关资源
最近更新 更多