2013-04-05 91 views
1

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

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> 

或者,如果任何人都可以直接我一个例子,因为我无法找到任何与我目前的搜索。

+0

你做了上面完全相同的事情。抓住你的用户列表,迭代它并创建一个字符串'“th”+ user.getId()+“”'然后你添加到你的html字符串中。 **注**这是你能做的最糟糕的事情。阅读:http://stackoverflow.com/tags/servlets/info – 2013-04-05 20:17:05

+0

如果您不想在Java代码中创建表格HTML,那么您将需要使用诸如JSP或JSF之类的东西。如果你想用你的Java代码来做,请执行_SotiriosDelimanolis_建议的操作。 – jahroy 2013-04-05 20:17:15

回答

4

当您构建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.You需要建立内部processExecutionQueue()方法基本HTML和表头列。 2.仅需要在getJobsForPrint()方法中创建数据行。

所以当结果从getJobsForPrint()通过它将被嵌入到其他HTML文件。

希望你可以用这个建议来完成代码。

+0

是的,基本上你可以在'getJobsForPrint()'方法内创建你希望servlet显示的html代码。尽管修改'getJobsForPrint()'将会更清晰,因此它会为您提供一个“List”而不是一个String作为“return”。在您调用'getJobsForPrint()'的servlet中,您按照Joseph Selvaraj的建议将列表条目放入html表格中。然后,Servlet将自动转换为您可以在浏览器中看到的html网站。 – GameDroids 2013-04-05 20:29:02

+0

非常好,感谢您的快速回复,设法按照您建议的约瑟夫的方式来实现它,现在尝试通过您自己来完成GameDroids的建议,然后我知道如何实现几种方式,谢谢你们 – 2013-04-05 20:51:00