2009-11-11 20 views
7

में इसके बजाय क्या उपयोग करें जब मेरे पास javax.faces.application.ViewExpiredException मैं उपयोगकर्ता को लॉगिन पेज पर भेजना चाहता हूं।com.sun.faces.enableRestoreView11 कॉम्पैबिलिटी जेएसएफ 1.2

web.xml

... 
    <context-param> 
     <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name> 
     <param-value>true</param-value> 
    </context-param> 
... 
<error-page> 
    <exception-type>javax.faces.application.ViewExpiredException</exception-type> 
    <location>/errors/sessionExpired.jsf</location> 
</error-page> 

sessionExpired.jsf

.... 
<c:redirect url="/index.jsf" /> 

लेकिन enableRestoreView11Compatibility विधि है कि JSF 1.1 में इस्तेमाल किया गया था है, JSF 1.2 के लिए समाधान क्या है?

उत्तर

12

com.sun.faces.enableRestoreView11Compatibility एक जेएसएफ 1.2 सेटिंग है जो जेएसएफ 1.2 को जेएसएफ 1.1 की तरह व्यवहार करने के लिए कहती है।

com.sun.faces.enableRestoreView11Compatibility == true का अर्थ है "ViewExpiredException फेंक न दें; इसके बजाय, अगर कोई पुराना समय समाप्त हो गया है तो बस एक नया दृश्य बनाएं।"

IBM notes JSF 1.1 व्यवहार पर कहते हैं:

यह प्रतिकूल व्यवहार हो सकता है, क्योंकि यह कोई नया दृश्य है, और इस तरह के आइटम राज्य के रूप में उस दृश्य में आम तौर पर कर रहे हैं, अब और नहीं हो रहे हैं।

डिफ़ॉल्ट JSF 1.2 व्यवहार इस रूप में the spec में परिभाषित किया गया है: अनुरोध एक पोस्टबैक है

हैं, तो फोन ViewHandler.restoreView(), वर्तमान अनुरोध और देखने के लिए पहचानकर्ता FacesContext उदाहरण गुजर, और एक लौटने पुनर्स्थापित दृश्य के लिए UIViewRoot। यदि ViewHandler.restoreView() से वापसी शून्य है, तो उचित त्रुटि संदेश के साथ ViewExpiredException फेंक दें। javax.faces.application.ViewExpiredException is a FacesException` जिसे एप्लिकेशन को सिग्नल करने के लिए फेंक दिया जाना चाहिए कि दृश्य पहचानकर्ता के लिए अपेक्षित दृश्य वापस नहीं किया गया था। एक एप्लिकेशन इस अपवाद के आधार पर कुछ क्रिया करने का चयन कर सकता है।

एक ViewExpiredException फेंक दिया जब दृश्य समाप्त हो रहा है, com.sun.faces.enableRestoreView11Compatibility पैरामीटर हटाने या false के लिए सेट करवाने के लिए।


com.sun नाम स्थान पता चलता है कि पैरामीटर, एक सूर्य/Mojarra और व्युत्पन्न कार्यान्वयन-विशिष्ट सेटिंग है, तो यह शायद सभी JSF कार्यान्वयन के साथ काम नहीं करेगा।

+1

मैंने सोचा कि मैं का उपयोग कर सकता हूं ... उपयोगकर्ता को लॉगिन पेज पर रीडायरेक्ट करने के लिए, लेकिन इस संगतता पैरामीटर के बिना यह काम नहीं करता है। मुझे यह रीडायरेक्शन करने के लिए अपना चरणसूची लिखना होगा, या शायद कुछ आसान तरीका है। – aindl

+0

क्या यह सेटिंग अभी भी जेएसएफ 2.2 में मान्य है या कोई आईथर विकल्प है? –

संबंधित मुद्दे