अभ्यास में, वे एक ही प्रभाव को प्राप्त करने के लिए इस्तेमाल किया जा सकता है, लेकिन viewAction
(JSF2 के साथ नए। 2) निम्नलिखित संवर्द्धन के साथ आता है:
onPostback
: viewAction
यह विशेषता है कि आप है कि क्या आप चाहते हैं कार्रवाई एक ही दृश्य को पोस्टबैक पर निष्पादित किया जाना है (जो है, पृष्ठ ताज़ा या सबमिट बटन आदि पर) निर्दिष्ट कर सकते हैं के साथ आता है। यह false
पर डिफ़ॉल्ट है, इसलिए आपको इसे निर्दिष्ट करने की आवश्यकता नहीं है यदि आपको आवश्यकता नहीं है। preRenderView
के साथ एक ही प्रभाव को प्राप्त करने के लिए आपको
<f:metadata>
<f:event type="preRenderView" rendered="#{facesContext.postBack}" listener="#{myBean.initialize}"/>
</f:metadata>
phase
की आवश्यकता होगी: यह विशेषता आपके द्वारा निर्दिष्ट है कि कार्रवाई के लिए एक विशिष्ट JSF चरण के दौरान क्रियान्वित किया जा अनुमति देता है। यह INVOKE_APPLICATION
पर डिफ़ॉल्ट है, लेकिन अन्य सभी जेएसएफ चरण आईडी यहां मान्य हैं।
if
: यह विशेषता आप एक मूल्य अभिव्यक्ति है कि एक बूलियन परिणाम का मूल्यांकन करने के लिए आपूर्ति की अनुमति देता है। दृश्य क्रिया केवल इस अभिव्यक्ति के परिणाम पर निष्पादित की जाएगी।
immediate
: यह विशेषता अब, के लिए एक viewAction
(डिफ़ॉल्ट INVOKE_APPLICATION
चरण की तुलना में) APPLY_REQUEST_VALUES
चरण के दौरान क्रियान्वित किया जा करने की क्षमता देता है ऐसा लगता है जैसे एक नियमित UIComponent
कुल मिलाकर व्यवहार करने के लिए अनुमति देता है , viewAction
दृश्य आदेशों को पूरा करने के लिए एक क्लीनर डिज़ाइन दृष्टिकोण है।
'rendered =" ... "' ' 'टैग के साथ चाल मेरे लिए काम नहीं करती है (जंगली 9.0 पर मोजररा 2.2.11 के साथ)। [जेएसएफ 2.2 वीडीएल दस्तावेज] के अनुसार (https://docs.oracle.com/javaee/7/javaserver-faces-2-2/vdldocs-facelets/), ' 'में' rendered'- विशेषता। –
यह @ मार्टिनहोलर को दस्तावेज नहीं किया गया है, लेकिन मेरे पास है (जब मैंने यह जवाब लिखा था) जीएफ 4 पर जेएसएफ 2.2, और टैग 'प्रस्तुत' विशेषता के साथ मौजूद है। शायद – kolossus
देवताओं द्वारा निरीक्षण किया जा सकता है शायद कुछ मामूली संस्करण के साथ व्यवहारकर्ता बदल गया, लेकिन मैंने 'rendered =" false "की कोशिश की और 'श्रोता'-विशेषता के माध्यम से निर्दिष्ट विधि को हर बार दृश्य का अनुरोध करने के लिए बुलाया गया। –