JSF 2 de bază și tomcat 6 este rezultatul acțiunii de navigare

Am un JSF 2.0 cu mojara EL 2.2 pe tomcat 6 și am lucrat de ceva timp acum în timpul dezvoltării. Recent am adăugat un formular cu un buton de comandă pentru autentificare (chestii de bază) care verifică numele de utilizator și parola în beanul gestionat la doLogin de acțiune.

 public String doLogin(){
        FacesMessage message = null;
        if((username.equals("user"))&&(password.equals("pass")))
                return "testpage.xhtml";
        else
            message = new FacesMessage("Invalid username or password");

         FacesContext.getCurrentInstance().addMessage(null, message);

        return null;
    }

Problema este că după ce trece prin doLogin și returnează "testpage.xhtml" , aceeași pagină este afișată. Chiar dacă am toate fișierele xhtml în rădăcina WebContent.

În consola de tomcat primesc:

The ELResolvers for JSF were not registered with the JSP container.

Trecerea parametrilor folosind EL 2.2 funcționează bine.

Folosesc JSF cu Facelets. Poți să-mi dai niște sfaturi

0

3 răspunsuri

Implicit navigation is introduced since JSF 2.0. In old JSF 1.x you'd need to define a in faces-config.xml or to explicitly call ExternalContext#redirect() on an URL.

Această problemă sugerează că aplicația web JSF 2.0 rulează în modul JSF 1.x fallback. Asigurați-vă că faces-config.xml este declarat conform versiunii specificației JSF 2.0.

<?xml version="1.0" encoding="UTF-8"?>



    <!-- Config here. -->


Avertismentul EL resolver nu are legătură cu acest lucru. Este cauzată de utilizarea EL 2.2 de la Glassfish pe Tomcat 6 și nu veți putea utiliza EL în paginile .jsp (ceea ce nu ar trebui să fie o problemă dacă utilizați exclusiv Facelets). Dacă doriți să scăpați de acest avertisment, utilizați JBoss EL de Glassfish EL. JBoss EL este o implementare îmbunătățită EL 2.1, în timp ce Glassfish EL este o implementare EL 2.2.

0
adăugat

În vizualizarea testului JSF 2.0 tradusă în navigație implicită. Vă rugăm să modificați codul dvs. preferat aici,

    public String doLogin(){
       FacesMessage message = null;
       if((username.equals("user"))&&(password.equals("pass"))) {
            return "testpage";
       } else {
            message = new FacesMessage("Invalid username or password");
            FacesContext.getCurrentInstance().addMessage(null, message);
       }
    return null;
}
0
adăugat

Nu sunt sigur, B'coz nu văd alt cod.

Dacă nu setați o regulă de navigare specifică în fețele-config.xml.

Valoarea implicită a $ SUB-DIRECTORY1/testpage.xhtml este $ SUB-DIRECTORY1/testpage

0
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com