JSF 2.0 неявная навигация, разные представления - PullRequest
4 голосов
/ 05 апреля 2011

Я ищу хорошее объяснение неявной навигации JSF 2.0 и того, как она работает с представлениями.Точнее, я понимаю, что из метода действия я могу вернуть строку, которая является результатом действия.Если есть представление JSF, имя файла которого соответствует результату, то это неявная навигация.

Теперь ... мой вопрос, а что, если действие вызывается из представления, которое находится внутри папки, но представление, к которому я хочу перейти к следующему, находится в другой папке?То есть с /manager/edit.xhtml вызывается действие.Какую строку должно возвращать это действие, чтобы навигация могла безопасно перейти к /user/list.xhtml или /index.xhtml или /manager/index.xhtml?

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Насколько мне известно, JSF ищет подходящее представление только в текущем контексте.Возможно, вам придется определить правило навигации в вашем файле names-config.xml, чтобы обработать результат особым образом.Вот пример:

<navigation-rule>
        <from-view-id>/profiles/viewkeypages.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>editkeypage</from-outcome>
            <to-view-id>/users/editkeypage.xhtml</to-view-id>
            <redirect />
        </navigation-case>      
</navigation-rule>

-Правин.

0 голосов
/ 31 января 2012

Вы можете использовать неявную навигацию для просмотра представлений в других папках.

Просто сделайте что-то подобное в представлении:

<h:link value="Move" outcome="#{request.contextPath}/users/editkeypage.xhtml?faces-redirect=true" />

или

<h:link value="Move" outcome="/users/editkeypage.xhtml?faces-redirect=true" />
...