Навигация JSF 2.0 не работает - PullRequest
0 голосов
/ 27 сентября 2011

Я использую Netbeans 7.0, Glassfish 3.1, JSF 2.0 Я пытаюсь перейти от одного представления к другому в пошаговой процедуре регистрации пользователя (с тремя шагами). Каждый шаг соответствует представлению, и эти представления находятся в разных папках, но все имеют одно и то же имя, т.е. register.xhtml. я пробовал неявную навигацию, посредством которой я определяю абсолютный путь к представлениям в обработчике событий управляемого компонента, а также с использованием случаев навигацииface-config.xml.

Проблема в том, что я могу без проблем перейти от первого шага / вида к следующему шагу / виду. Однако переход к третьему виду приводит к появлению com.sun.faces.context.FacesFileNotFoundException

структура файла похожа на

/extensions/assm/registration/individual/register.xhtml
/extensions/assm/registration/address/register.xhtml
/extensions/assm/registration/systemuser/register.xhtml

извлечение лица-config.xml для перехода от адреса к пользователю системы

<navigation-rule>
<from-view-id></from-view-id>
<navigation-case>
<from-outcome>gotosystemuser</from-outcome>
<to-view-id>/extensions/aasm/registration/systemuser/register.xhtml</to-view-id>
</navigation-case>
</navigation-rule>

Кто-нибудь знает, где я понимаю это неправильно?

1 Ответ

2 голосов
/ 27 сентября 2011

com.sun.faces.context.FacesFileNotFoundException

означает, что JSF не может найти представление.view id, которое вы указали в navigation-rule, не является хорошим (каким-то образом).

Представление идентифицируется путем с указанием всего после context root, включая / в начале.

Но вы также должны включить URL pattern, который сопоставлен с Faces Servlet в web.xml.Например, если в вашем файле web.xml есть

<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/jsf/*</url-pattern>

, вы должны также включить это как View ID.Таким образом, с идентификатором представления будет

/ jsf / folder1 / folder2 / page.xhtml

Но с JSF 2.0 вам не нужно выполнять всю эту навигацию-руль в файле faces-config.В JSF 2.0 для перехода на другую страницу все, что вам нужно, это вернуть идентификатор представления из метода действия.

@ManagedBean
@ViewScoped
public class MyBean {

    public String axnMethod() {
        return "view-id"; //this will result in navigation to view represented by view-id
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...