2013-04-05 28 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