Это может показаться тривиальным вопросом, но после нескольких часов поисков я так и не нашел на него ответа. Проблема, насколько я понимаю, в том, что я пытаюсь вернуть FileSystemResource
от контроллера, и Thymeleaf ожидает, что я предоставлю String
ресурс, с помощью которого он будет отображать следующую страницу. Но поскольку я возвращаю FileSystemResource
, я получаю следующую ошибку:
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "products/download", template might not exist or might not be accessible by any of the configured Template Resolvers
Я использовал отображение контроллера:
@RequestMapping(value="/products/download", method=RequestMethod.GET)
public FileSystemResource downloadFile(@Param(value="id") Long id) {
Product product = productRepo.findOne(id);
return new FileSystemResource(new File(product.getFileUrl()));
}
Моя HTML-ссылка выглядит примерно так:
<a th:href="${'products/download?id=' + product.id}"><span th:text="${product.name}"></span></a>
Я не хочу, чтобы меня никуда перенаправляли, мне просто нужно, чтобы файл был загружен после нажатия ссылки. Это действительно правильная реализация? Я не уверен.
<a th:href="${'products/download?id=' + product.id}"><span th:text="${product.name}"></span></a>
$
в начале должно быть@
, вы можете попробовать так? - person mtyurt   schedule 23.04.2015@
,product.id
не заменяется фактическим идентификатором продукта. - person shyam   schedule 23.04.2015th:href="@{'products/download?id=' + ${product.id}}"
, как указано в документации. - person mtyurt   schedule 23.04.2015