2012-12-22 15 views
15

उन लोगों का निष्पादन आदेश क्या है?एफएस के जेएसएफ निष्पादन आदेश: घटना

यहाँ संभव f:event घटना नाम के बारे में एक सवाल है: List of JSF 2 events?

preRenderComponent 
preRenderView 
postAddToView 
preValidate 
postValidate 

मैं जाँच करने के लिए यदि कोई उपयोगकर्ता सत्र सेम में सहेजा जाता है में लॉग ऑन है और यदि नहीं लॉगिन साइट है, जो की जरूरत को अनुप्रेषित चाहते व्यू-पर्म रूपांतरण चरण से पहले होता है क्योंकि प्रयुक्त कनवर्टर लॉग इन उपयोगकर्ता पर निर्भर करता है। 'प्रीवालिडेट' रूपांतरण के बाद होता है और इसलिए मुझे पहले की घटना की आवश्यकता है।

<f:event type="preRenderView" listener="#{beanA.checkLoggedIn()}"/> 
<f:viewParam name="param" value="#{beanB.param}" converter="#{beanB.converter}" required="true"/> 

मैं 'beanB' भी 'checkLoggedIn()' डाल दिया है सकते हैं, लेकिन सिर्फ जांच करने के लिए सेम scoped ताकि मैं इसे आसानी से पुन: उपयोग कर सकता है एक अलग अनुरोध का उपयोग करने की कोशिश की।

उत्तर

26

उन लोगों का निष्पादन आदेश क्या है?

  • postAddToView रन सही होने के बाद घटक दृश्य का निर्माण समय के दौरान देखने के लिए जोड़ा जाता है (जो आमतौर पर के दौरान देखने चरण बहाल, लेकिन यह भी के दौरान हो सकता है प्रतिक्रिया चरण, उदा नेविगेशन प्रस्तुत करना)।
  • preValidate घटक को सत्यापित करने से ठीक पहले चलाता है (जो आमतौर पर सत्यापन चरण के दौरान होता है, लेकिन अगर immediate="true" पर अनुरोध मूल्य चरण भी लागू किया जा सकता है)।
  • postValidate घटक मान्य होने के ठीक बाद चलाता है (जो आमतौर पर सत्यापन चरण के दौरान होता है, लेकिन अगर immediate="true" पर अनुरोध मूल्य चरण भी लागू किया जा सकता है)।
  • preRenderView रेंडर प्रतिक्रिया चरण के दौरान दृश्य प्रस्तुत करने से ठीक पहले चलता है।
  • preRenderComponent रेंडर प्रतिक्रिया चरण के दौरान घटक प्रस्तुत करने से ठीक पहले चलता है।

जावाडोक परिचय में विस्तृत विवरण देखने के लिए लिंक पर क्लिक करें।


मैं जाँच करने के लिए यदि कोई उपयोगकर्ता सत्र सेम में सहेजा जाता है में लॉग इन किया है और चाहते हैं लॉगिन साइट है, जो पहले दृश्य-परम रूपांतरण चरण होने के लिए के बाद से इस्तेमाल कनवर्टर निर्भर करता है की जरूरत पर रीडायरेक्ट नहीं करता है, तो लॉग इन उपयोगकर्ता पर। 'प्रीवालिडेट' रूपांतरण के बाद होता है और इसलिए मुझे पहले की घटना की आवश्यकता है।

आप इस के लिए एक सरल servlet filter का उपयोग करना चाहिए, न कि एक JSF घटना। मैंने पहले कई उदाहरण पोस्ट किया है:

+1

'preValidate' /' postValidate' की 'तत्काल =" true "मामले में सब पर एक घटक पर बुलाया नहीं कर रहे हैं'। Mojarra स्रोत कोड को देखते हुए पुष्टि करता है कि। क्या ऐसा होना चाहिए? –

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

  • कोई संबंधित समस्या नहीं^_^