Реализация входа в JSF 2 - PullRequest
       59

Реализация входа в JSF 2

2 голосов
/ 07 марта 2012

Я пытаюсь реализовать очень простой (на данный момент) экран входа в систему с помощью JSF 2 (используя NetBeans). Я нашел несколько примеров, из которых я скопировал исходный код, но пока безуспешно. в моем файле login.xhtml у меня есть 2 поля ввода и командная кнопка -

<h:commandButton value="go!" actionListener="#{LoginBean.CheckValidUser}" />

в моем LoginBean, функция проверки выглядит так -

public String CheckValidUser() { 
    if(username.equals("admin") && password.equals("admin")){ 
        return "welcome"; 
    } 
    else{ 
       return "fail";
    } 
} 

и к моему лицу-config.xml я добавил следующее правило навигации:

<navigation-rule>
    <description>login success</description>
    <from-view-id>/login.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{LoginBean.CheckValidUser}</from-action> 
        <from-outcome>welcome</from-outcome>
        <to-view-id>/welcome.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

в любом случае - я просто не буду работать, я ввожу правильные значения ООН и PW, но я не получаю "welcome.xhmtl". когда я отлаживаю код, я вижу, что в функции проверки он работает, как и ожидалось, но могу ли я знать, что face-config.xml настроен правильно?

что я пропустил? веселит, Эрез

1 Ответ

1 голос
/ 07 марта 2012

Здесь

<h:commandButton value="go!" actionListener="#{LoginBean.CheckValidUser}" />

Вы должны использовать action вместо actionListener.Исправьте это соответствующим образом:

<h:commandButton value="go!" action="#{LoginBean.CheckValidUser}" />

Предполагается, что слушатели действий возвращают void, и они не предназначены для навигации.

См. Также:


Не связаны с конкретной проблемой, вообще удалите <navigation-rule>.Это не нужно, так как JSF 2.0 с новой поддержкой Implicit Navigation .Результат "welcome" уже неявно перейдет к "welcome.xhtml".Убедитесь, что вы читаете JSF 2.x целевые ресурсы / книги / учебные пособия, а не JSF 1.x.JSF 2.x - это значительное изменение по сравнению с JSF 1.x.

См. Также:

...