У меня есть pdf-файл в моем веб-приложении Spring, внутри папки webapp. Мне нужен href-эквивалент JSF для загрузки файла с сервера.
Я пробовал эти строки:
<h:link href = "manual.pdf" >Download</h:link>
<h:outputLink value = "manual.pdf" target = "_blank">Download</h:outputLink>
Первый перенаправляет на дом, а со второго получаю ошибку 404.
Пожалуйста, помогите, заранее спасибо.
Обновлено: Было высказано предположение, что этот пост Как обеспечить загрузку файла из резервного компонента JSF? может решить мою проблему, но это не так, потому что при создании файла .war мой файл в каталоге src/main/resources повреждается и загружается как пустые страницы. Я переместил файл в /webapp/WEB-INF, чтобы иметь возможность загрузить его с помощью «интерфейсного» решения.
Обновлено еще раз: Предполагая, что это проблема фильтрации maven, как указано в комментарии, я редактирую вопрос, чтобы вы могли мне помочь.
В файле pom.xml есть следующие строки:
resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
Я приступил к внесению следующих изменений:
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.pdf</exclude>
</excludes>
</resource>
</resources>
Теперь мой файл .war вообще не содержит manual.pdf, и я получаю
FileNotFoundException: class path resource [manual.pdf] cannot be resolved to URL because it does not exist
Может ли кто-нибудь помочь мне понять, как исключить ресурс из фильтрации и сделать его доступным для загрузки? Ресурсы.
Заранее спасибо.
Я редактирую свой исходный пост, объясняя, что произойдет, если у меня есть файл в каталоге ресурсов. На самом деле он почти удваивается в размере, когда я проверяю его внутри файла .war после чистой установки mvn, и это, возможно, повреждает файл (формат PDF) и не может правильно открыться с помощью любого приложения для чтения PDF. Я также проверил это в валидаторе PDF, и хотя исходный файл действителен, файл внутри .war после сборки проекта имеет ошибки.
Тогда это на самом деле не вопрос, связанный с jsf (ни spring), а вопрос, связанный с maven.
Возможно, фильтр ресурсов maven повредил ваш PDF-файл во время сборки - вы должны исключить *.pdf из фильтрации в вашем pom.xml.




Почему он находится в WEB-INF, а не в папке ресурсов?