Моя первая страница содержит ссылки на файлы, которые хранятся в базе данных.При нажатии на ссылку открывается моя вторая страница, на которой документ отображается в формате <iframe>
.Я попробовал три способа вызова второй страницы.Один способ не работает, а два других не являются безопасными: выход из системы после нажатия кнопки «Назад» снова открывает страницу.
Файлы из базы данных копируются в папку MyProject / web / в папкесервер.Атрибут <iframe src=...>
заменяется на путь к файлу переопределенным InlineFrame#onComponentTag(ComponentTag tag)
.
Метод 1 не может найти файл.Я бы предпочел использовать этот метод, так как он наиболее безопасный.Первая страница
setResponsePage(DisplayResourcePage.class, params);
Вторая страница должна получить файл из базы данных.
DisplayResourcePage(PageParameters parameters) {..}
Некоторая диагностика.Браузер показывает ошибку 404 File Not Found.Я не уверен, где он ищет файл.src
будет заменено.Может ли быть так, что начальный src
по-прежнему влияет на место, откуда ожидается чтение файла?
realPath: C:\Users\joe\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\MyProject
src before ./com.mycompany.shared.DisplayResourcePage?4-1.ILinkListener-pdfframe
Метод 2 находит файл, но не является безопасным.Первая страница
setResponsePage(new DisplayResourcePage(params));
Вторая страница получает файл из базы данных, используя тот же конструктор.
DisplayResourcePage(PageParameters parameters) {..}
Некоторая диагностика.src
является начальным атрибутом <iframe src=...>
.Во всех случаях он заменяется путем к файлу.
realPath: C:\Users\joe\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\MyProject
src before ./page?7-1.ILinkListener-pdfframe
Метод 3 находит файл, но не является безопасным.Первая страница
setResponsePage(new DisplayResourcePage(item.getModelObject()));
Вторая страница получает файл из базы данных, используя другой конструктор.
public DisplayResourcePage(EntityOtherResourceModel resourceModelItem) {..}
Диагностика такая же, как и в методе 2.