Добавление iFrame на PrimeFace страницу

147
14 октября 2019, 23:50

Вот в чем вопрос: хочу вывести iFrame с обзором pdf, написал сервлет который отвечает за высылку информации (так как сам pdf находится не в папке проекта).

package web;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@ManagedBean
@SessionScoped
public class showPdf extends HttpServlet {
private String fileName;
private static final int DEFAULT_BUFFER_SIZE = 10240;
public String getFileName() {
    return fileName;
}
public void setFileName(String fileName) {
    this.fileName = fileName;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    File file = new File("C:\\Users\\HP\\Desktop\\Data\\" +  fileName);
    resp.reset();
    resp.setBufferSize(DEFAULT_BUFFER_SIZE);
    resp.setContentType("pdf");
    BufferedInputStream input = null;
    BufferedOutputStream output = null;
    try {
        input = new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);
        output = new BufferedOutputStream(resp.getOutputStream(), DEFAULT_BUFFER_SIZE);
        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
    } finally {
        input.close();
        output.close();
    }
}
}

Параметр filename высылаю в xhtml

<p:column>
       <f:attribute name="#{showPdf.fileName}" value="#{product.id}"/>
       <iframe src="#{showPdf}"/>
</p:column>

Параметр product.id известен, то есть проблема не в нем, но на месте iFrame получаю not found. Подскажите пожалуйста что не так.

READ ALSO
Как сделать эффект чтобы было понятно ,что скриншот сделан

Как сделать эффект чтобы было понятно ,что скриншот сделан

У меня есть кнопка которая делает скриншотКак сделать какой-то эффект, чтобы было понятно ,что скриншот сделан

147
Почему дублируется диалог?

Почему дублируется диалог?

Почему дублируется диалог? Если запустить меню, выбрать доход, ввести доход, закрыть диалог, закрыть ввод дохода, в меню выбрать доход, ввести...

220
Грамотное API, underscoreCase, camelCase

Грамотное API, underscoreCase, camelCase

В vuejs мы создали объект для отправки, json, давая имена через camelCase

129
Обработка нажатий на клавиатуру Telegram Bot

Обработка нажатий на клавиатуру Telegram Bot

создаю клавиатуру для упрощения общения с пользователемНо не могу понять как обработать нажатие на кнопку из клавиатуры

126