Открывайте pdf в новом окне, только если условие выполнено - PullRequest
0 голосов
/ 15 октября 2018

Так что я пытаюсь открыть pdf в новом окне commandButton и использую компонент p: fileDownload.Кнопка:

<p:commandButton value="#{loc['showPdf']}" id="showPdfButton"
                    action="#{logReportBean.createPdfByButton}" ajax="false"
                    onclick="if (#{logReportBean.showPdfButtonOnClickBehaviour()}) form.target='_blank'"
                    process="@this" update="@this" icon="ui-icon-arrowthick-1-s">
                    <p:fileDownload value="#{logReportBean.pdfFile}"
                        contentDisposition="inline" />
                </p:commandButton>

Метод showPdfButtonOnClickBehaviour:

public boolean showPdfButtonOnClickBehaviour()
{
    if(logReportList.isEmpty())
    {
        return false;
    }
    return true;
}

Только когда метод showPdfButtonOnClickBehaviour равен true, pdf следует открывать в новом окне, но вместо этого новое окно также открывается, когда метод возвращает false,Поэтому я хочу, чтобы новое окно появлялось только тогда, когда logReportList не пусто, потому что это мой список для создания PDF.

Когда я нажимаю кнопку, открывается новое окно до того, как showPdfButtonOnClickBehaviour in onclick даже будет вызван.Я не знаю почему.Что я делаю не так?Может быть, у кого-то есть лучшее решение открыть pdf в новом окне, только когда мое поле logReportList не пусто?

Извините за плохой английский.

...