我的客戶已經給了我一個用於計費的HTML模板,並且我必須將其納入我正在進行的JSP/Servlet項目中。這是一個原始的HTML文件,輸出應該與分頁符相同。它有一個標題表和一個細節表,就像我們的普通發票一樣。任何想法如何顯示來自Servlet/JSP的報告中的細節?jsp中的html報告
回答
只是把它放在一個JSP文件,並替換需要由標籤庫動態生成的一切和EL。您可以使用JSP作爲模板來顯示HTML(和CSS/JS)通常的方式。您可以使用EL來訪問「後端」數據(在page
,request
,session
或application
作用域中作爲屬性放置的所有內容),並且可以使用taglib來動態控制頁面流。
正如Bozho所述,您可以使用JSTL(僅在webapp的/WEB-INF/lib
中刪除jstl-1.2.jar)c:forEach
來迭代Javabeans集合。您可以使用EL來訪問Javabean屬性。你可以創建一個代表Order
(也Customer
和Item
)一個JavaBean:
public class Order {
private Long id;
private Date timestamp;
private Customer customer;
private List<Item> items;
// Add/generate public getters and setters.
}
可以使用Servlet
獲得從數據庫中Order
和請求轉發到用於顯示的JSP文件。例如。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Long orderId = Long.valueOf(request.getParameter("orderId"));
Order order = orderDAO.find(orderId);
request.setAttribute("order", order);
request.getRequestDispatcher("/WEB-INF/report.jsp").forward(request, response);
}
地圖在web.xml
這Servlet
由url-pattern
,使您可以通過一個POST
形式只是由GET
鏈接調用它也許(更換由doGet()
doPost()
然後)。您看到Servlet
將找到的order
放在請求範圍內(以便可通過${order}
在EL中對其進行訪問),並將該請求轉發給JSP以供顯示。您還會看到JSP被放置在/WEB-INF
中,以防止頁面直接訪問(例如,通過在瀏覽器地址欄中輸入JSP的URL)。
在報告中,您可以訪問Order
這樣的:
<h1>Order header</h1>
<table>
<tr><th>Order ID:</th><td>${order.id}</td></tr>
<tr><th>Order timestamp:</th><td><fmt:formatDate value="${order.timestamp}" dateStyle="long" /></td></tr>
<tr><th>Customer name:</th><td>${order.customer.name}</td></tr>
<tr><th>Customer address:</th><td>${order.customer.address}</td></tr>
</table>
<h2>Order details</h2>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<c:forEach items="${order.items}" var="item">
<tr>
<td>${item.name}</td>
<td>${item.description}</td>
<td>${item.quantity}</td>
<td><fmt:formatNumber value="${item.price}" type="currency" currencySymbol="€" /></td>
</tr>
</c:forEach>
</table>
注意,以上只是一個基本的例子。您當然需要使用您的HTML模板。
很抱歉,因爲這麼幼稚,EL @Bozho中的btwn $和#有什麼區別,因爲已經爲你的小貓添加了投票權,明天當我完成這個 – sansknwoledge 2010-02-08 14:41:38
時,我將投票贊成Mr.BalusC :-) '#{}'符號是新的/統一的EL,通常只用於JSF/Facelets,而不是普通的vanilla JSP。 bozho坐得太久/很多在JSF的世界:) – BalusC 2010-02-08 14:47:13
多一個問題卡住了這段代碼得到了一個bean擁有dc頭的細節,也包含列表(dc itmes),現在我感到在填充servlet中的bean,我的代碼在servlet中是 String dcno = request.getParameter(「dcno」); CallableStatement cb = con.prepareCall(「{call spPrintDC(?)}」); cb。setString(1,dcno); ResultSet rs = cb.executeQuery(); ArrayList
複製粘貼大部分。然後對其進行編輯,從而使表的每一行(<tr>
)必須從數據中包含一行,所以使用:
<table>
<c:forEach items="#{yourData} var="#{row}">
<tr>
<td>#{row.datum1}</td>
<td>#{row.datum2}</td>
</tr>
</c:forEach>
</table>
- 1. JSP頁面中的Jasper報告
- 2. Scalatest HTML報告
- 3. JaCoCo - 從報告中排除JSP
- 4. Log Parser HTML報告
- 5. 如何瀏覽報告通過超鏈接在JSP報告
- 6. 在黃瓜的HTML報告
- 7. pyunit的好html報告
- 8. 生成HTML TestNG的報告
- 9. UnknownHostException HTML報告中的錯誤
- 10. java ejb jsp未報告異常
- 11. 從jsp調用Jasper Server報告
- 12. 如何手動創建junit xml報告的html報告?
- 13. Pytest HTML報告:如何獲取報告文件的名稱?
- 14. 賈斯珀報告凍結html報告的標題
- 15. HTML報告解決方案
- 16. JasperReports HTML報告分頁
- 17. GWT HTML報告打印
- 18. Specs2:生成HTML報告?
- 19. C# - 創建HTML報告
- 20. Jenkins Html報告閾值
- 21. 碧玉報告HTML組件
- 22. 解析html報告文件
- 23. 生成HTML TestNG報告
- 24. 修改testNG HTML報告
- 25. OCLint生成html報告
- 26. Py.Test:報告和HTML輸出
- 27. 2 R報告中的列報告 - 將HTML渲染放在數據框中
- 28. RDLC報告中的多個子報告
- 29. 賈斯珀報告中的子報告
- 30. Jasper報告中的空白子報告
是您的問題通過提供的答案解決?提供反饋信息。 – Bozho 2010-02-11 13:03:19
對延遲響應感到抱歉!是的,我管理了一些什麼讓我的html模板運行根據mr.balusc給出的指示。我再次道歉,但我仍然需要學習很多東西,如果遇到任何問題,都會嘗試離線並回到這裏。 – sansknwoledge 2010-02-16 11:03:42