मूल जेएसएफ 2 और टोमकैट 6 एक्शन परिणाम नेविगेशन isue

मेरे पास एक जेएसएफ 2.0 है जो मोमारा ईएल 2.2 के साथ टोमकैट 6 पर है और यह विकास के दौरान कुछ समय के लिए काम कर रहा था। मैंने हाल ही में लॉगिन (मूलभूत सामग्री) के लिए एक कमांड बटन के साथ एक फॉर्म जोड़ा जो क्रिया doLogin पर प्रबंधित बीन में उपयोगकर्ता नाम और पासवर्ड की जांच करता है।

 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;
    }

समस्या यह है कि यह doLogin के माध्यम से जाता है और "testpage.xhtml" देता है वही पृष्ठ प्रदर्शित होता है। भले ही मेरे पास वेबकंटेंट की जड़ में सभी xhtml की फ़ाइल हो।

टॉमकैट के कंसोल में मुझे मिलता है:

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

ईएल 2.2 काम ठीक का उपयोग कर पैरामीटर पास करना।

मैं फेसलेट के साथ जेएसएफ का उपयोग कर रहा हूँ। मुझे कुछ सलाह दे सकती है

0
जोड़ा संपादित
विचारों: 1

3 उत्तर

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.

यह समस्या बताती है कि आपका जेएसएफ 2.0 वेब एप्लिकेशन JSF 1.x फ़ॉलबैक मोडस में चल रहा है। सुनिश्चित करें कि आपका face-config.xml घोषित जेएसएफ 2.0 विनिर्देश संस्करण को घोषित किया गया है।

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



    <!-- Config here. -->


ईएल रिज़ॉल्वर चेतावनी इस से असंबंधित है। यह टॉमकैट 6 पर ग्लासफ़िश के ईएल 2.2 का उपयोग करके होता है और आप .jsp पृष्ठों में ईएल का उपयोग करने में असमर्थ होंगे (यदि आप पूरी तरह से फेसलेट का उपयोग कर रहे हैं तो कोई समस्या नहीं होनी चाहिए)। अगर आप इस चेतावनी से छुटकारा पाना चाहते हैं, तो इसके बजाय JBoss EL का उपयोग करें ग्लासफिश ईएल का। जेबॉस ईएल एक उन्नत ईएल 2.1 कार्यान्वयन है जबकि ग्लासफ़िश ईएल एक ईएल 2.2 कार्यान्वयन है।

0
जोड़ा

जेएसएफ 2.0 टेस्टपेज व्यू में अंतर्निहित नेविगेशन में अनुवाद किया गया है। कृपया अपना कोड पसंद यहां बदलें,

    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
जोड़ा

मुझे यकीन नहीं है, बोकोज़ मुझे एक और कोड नहीं दिख रहा है।

यदि आप चेहरे-config.xml में विशिष्ट नेविगेशन-नियम सेट नहीं करते हैं।

$ SUB-DIRECTORY1/testpage.xhtml का डिफ़ॉल्ट $ SUB-DIRECTORY1/testpage है

0
जोड़ा