我正在下载一个带有web应用程序的PDF文件,该应用程序是用Spring Boot 2.0.3开发的,使用Thymeleaf,来自管理部分,受Spring Security保护。在本地,它工作正常,但在网上我遇到了以下错误:
<代码>组织。特里梅莱夫。例外情况。TemplateInputException:Error resolving template“/email/confirmedbooking”,模板可能不存在,或者任何配置的模板解析程序都可能无法访问,其根本原因是
这是控制器:
@GetMapping("/admin/bookings/booking-pdf")
public void generatePdfBooking(@RequestParam Long idbooking, HttpServletResponse response)
throws IOException, Exception{
bookingService.setBookingService(idbooking);
Booking booking = bookingService.getBooking();
Guest guest = bookingService.getGuest();
String idlanguage;
if(guest.getIdlanguage() != null){
idlanguage = guest.getIdlanguage();
} else {idlanguage = "en";}
Map<String, Object> map = new HashMap<>();
map.put("booking", booking);
map.put("guest", guest);
byte[] data = pdfGenerator.createPdf("/email/confirmedbooking", map, idlanguage);
pdfGenerator.streamReport(response, data, "id-" + booking.getIdbooking() + ".pdf");
}
这是html页面的摘录:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<link rel="stylesheet" href="/webjars/bootstrap /css/bootstrap.min.css"/>
<link rel="stylesheet" href="/css/rentalwebs.css"/>
</head>
<body>
<table style="width:680px" class="table table-borderless">
<tbody>
<tr>
<td>
<h2 th:text="${property.name}"></h2>
</td>
</tr>
<tr>
<td>
<span th:text="#{booking.id}"></span>
<span th:text="${booking.idbooking}"></span>
....
作为一个模板生成器,我使用org。XHTMLender。pdf。ITextRenderer(飞碟pdf)。
我已经测试过提供不同的. html文件来生成PDF在pdfGenerator.createPdf("/电子邮件/确认预订", map, idLanguage);
,但结果总是一样的。
根据Daniel Mikusa的建议,我已经解决了这个问题,去掉了第一个/from/email/confirmedbooking,代码如下:
byte[] data = pdfGenerator.createPdf("email/confirmedbooking", map, idlanguage);
它似乎没有识别路径,可能是因为双斜杠问题,在这篇文章中已经解释过:使用打包在jar中的Thymeleaf解决Spring Boot模板的错误
我用和创建了一个web应用程序,如果打开登录页面,然后登录,然后依次进入管理模块或报告模块,一切都很好。 当我在浏览器中键入url(需要进行身份验证,但我可以在自定义筛选器中打开所有权限)时,就会出现proleam,页面加载时没有js和CSS。在调试模式下,我看到意外地被放入路径中,如下所示。如果访问,我就可以获得资源。
我目前正在S3中存储和下载我的Thymeleaf模板。 我使用以下函数从S3检索模板: 执行此操作后,文件将成功下载到所需位置。 但是当试图从FlyingSaucer PDF生成器访问文件时,该文件不存在,尽管它已经在FILE_LOCATION_PATH下载。(我可以打开文件...文件在那里,但函数看不到它) 当我一次又一次地运行程序时,我得到了相同的结果。但是当我停止程序并再次运行它时,一切都正
我试图在我的PDF模板中包含一个字母头,如下所示: 片断/header.html template.html html位于app/src/main/resources/template/pdf/文件夹中。我必须包括css和图像文件与完整的路径(从项目的根),以使它们工作。我尝试包含完整路径的片段(如上),只包含片段/头,但每次都得到相同的错误。 我正在使用 Spring-Boot-Starter-
有人知道为什么会抛出下面的错误吗? TemplateInputException:解析模板“DirectBind”时出错,模板可能不存在,或者任何已配置的模板解析程序都无法访问模板。
我试图使用thymeleaf生成pdf,但问题是在生成pdf时,没有加载css和js等静态资源。如果我将html呈现为网页,则资源会完全加载,但每当我生成pdf时,都不会应用资源。有人知道有没有办法解决这个问题吗? 提前谢谢。
问题内容: 我正在尝试使用以下划线字符开头的键访问字典的元素。例如: 我正在尝试在Django模板中访问它们。显然,我意识到您无法从Django模板访问带下划线的python变量(因为它们在Python中被视为私有),但这是一个dict对象,其中任何不可变对象都是有效键。 我无法使用{{my_dict._source}}访问Django模板中的上述字典,因此我认为Django正在阻止它。准确吗?