Мой клиент дал мне HTML-шаблон для выставления счетов, и мне нужно включить в мой текущий проект JSP/Servlet. Это необработанный HTML-файл, и вывод должен быть точно таким же, как и разрывы страниц и т. Д. Он имеет одну таблицу заголовков и одну таблицу подробностей, такую как наш обычный счет-фактура. Любая идея, как отображать детали в отчете от Servlet/JSP?html report in jsp
ответ
Просто поместите его в файл JSP и заменить все, что нужно, чтобы динамически генерироваться библиотеки тегов и EL. Вы можете использовать JSP как шаблон для отображения HTML (и CSS/JS) обычным способом. Вы можете использовать EL для доступа к «задним» данным (все, что было помещено как атрибут в области page
, request
, session
или application
), и вы можете использовать taglib для динамического управления потоком страниц.
Как указано Bozho, вы можете использовать JSTL (только падение jstl-1.2.jar в WebApp-х /WEB-INF/lib
) c:forEach
перебрать коллекцию JavaBeans. Вы можете использовать EL для доступа к свойствам Javabean. Вы можете создать бина, который представляет собой Order
(а также Customer
и Item
):
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);
}
Карта этого Servlet
web.xml
в ПРОИЗВОДИМОМ url-pattern
, так что вы можете назвать его по POST
форме или, может быть, просто с помощью GET
ссылки (замените doPost()
на doGet()
тогда). Вы видите, что Servlet
помещает найденный order
в область запроса (чтобы он был доступен в EL на ${order}
) и пересылает запрос на JSP для отображения. Вы также видите, что JSP помещается в /WEB-INF
, чтобы предотвратить прямой доступ к странице (например, введя URL JSP в адресную строку браузера).
В отчете вы можете получить доступ к 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-шаблон.
Извините за то, что вы настолько наивны, в чем разница btwn $ и # в EL @Bozho, так как голосование уже добавлено к вашему котенку, я отброшу свое продвижение на Mr.BalusC :-) завтра, когда я закончу это – sansknwoledge
'# {}' нотация - это новый/унифицированный EL, обычно используемый только в JSF/Facelets, а не в простом ванильном JSP. Bozho сидит слишком долго/много в мире JSF :) – BalusC
еще один вопрос, связанный с этим кодом, получил бит, содержащий данные заголовка dc, а также содержит список (dc itmes), теперь я поражен заполнением компонента в сервлете, мой код в сервлет Строка dcno = request.getParameter ("dcno"); CallableStatement cb = con.prepareCall ("{вызов 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. html report in Cucumber
- 2. jsp: param in JSP
- 3. #Error in rdlc report
- 4. rdlc report in space
- 5. Crystal Report in Local
- 6. Crystal Report in php
- 7. Crystal report in asp.net
- 8. Report Orientation in Jasperreport
- 9. IndexOf in Velocity report?
- 10. Count in Crystal Report
- 11. Datetime in Crystal report
- 12. Stylesheet empty in JSP
- 13. ReCaptcha in JSP
- 14. out.println in JSP
- 15. Jasper Report Freeze title of html report
- 16. хочу изменить maven surefire xhtml report in в HTML
- 17. Render html code in sql server client report (rdlc)
- 18. Count Aggregate in FetchXML report
- 19. Split Name in Crystal Report
- 20. RDLC REPORT Justify in VS2012
- 21. show message in crystal report
- 22. Jasper report PDF in hindi
- 23. Crystal report export in excel
- 24. WaterMark in Crystal report VB.NET
- 25. SQL Server in asp Report
- 26. Pagination in a rdlc report
- 27. Date Prompt in Cognos Report
- 28. CPPcheck html report
- 29. Изменить testNG HTML report
- 30. Frisby Jasmine html Report
была ли ваша проблема решена предоставленными вами ответами? обеспечить обратную связь. – Bozho
извините за задержку ответа! да, мне удалось кое-что получить, чтобы запустить мой html-шаблон на основе инструкций, данных mr.balusc. еще раз мои извинения, все же я чувствую, что нужно многому научиться, попробует их в автономном режиме и вернется сюда в случае каких-либо проблем, как обычно. – sansknwoledge