Как использовать jsf "навигационное правило" для прямых страниц без .jsf ("to-view-id" не является .jsf) - PullRequest
4 голосов
/ 06 сентября 2011

Я хочу направить «from-result» в некоторый файл отчета BIRT (с расширением .rptdesign), но он добавляет расширение как .jsf.Мое правило навигации:

<!-- home.xhtml page -->
<navigation-rule>
    <from-view-id>/home.xhtml</from-view-id>
    <!-- navigate to group report -->
    <navigation-case>
        <from-outcome>GROUP_REPORT</from-outcome>
        <to-view-id>frameset?__report=report/new_report_group.rptdesign&amp;__overwrite=true&amp;</to-view-id>
        <redirect>
            <view-param>
                <name>Job Location</name>
                <value>#{homeController.jobLocation}</value>
            </view-param>
        </redirect>
    </navigation-case>
</navigation-rule>

Тогда я получил URL результата как http://192.168.3.111:8080/imc-report-system-1.0/frameset?__report=report%2Fnew_report_group.jsf&Job%20Location=abc, но это должно быть как http://192.168.3.111:8080/imc-report-system-1.0/frameset?__report=report%2Fnew_report_group.rptdesign&Job%20Location=abc Спасибо.

1 Ответ

4 голосов
/ 06 сентября 2011

Невозможно перейти к просмотру без JSF с помощью случая навигации JSF.

Перенаправить себя, используя ExternalContext#redirect().

public void submit() {
    // ...

    String url = "frameset"
        + "?__report=report%2Fnew_report_group.rptdesign"
        + "&amp;__overwrite=true"
        + "&amp;Job%20Location=" + jobLocation;

    FacesContext.getCurrentInstance().getExternalContext().redirect(url);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...