नामक एक पेज/मेरा फली अपने preRenderView
घटना प्रत्येक पोस्टबैक, जहां n
(वर्तमान मिलाकर) Postbacks की संख्या घटित हो चुके है के लिए तो पहले पृष्ठ लोड पर दो बार गोली चलाई 2 + n
बार है।JSF preRenderView कई बार
यहां कुछ अन्य पोस्ट पढ़ने के बाद, मैंने <f:metadata/>
के बाहर स्थानांतरित कर दिया और इससे preRenderView
कॉल की संख्या कम हो गई। यही है, इसे एक बार पूर्ण पृष्ठ लोड पर और प्रत्येक पोस्टबैक के लिए 1 + n
बार कहा जाता है। मैंने <f:view/>
के बाहर <f:event/>
टैग को स्थानांतरित करने का भी प्रयास किया, लेकिन इसका कोई प्रभाव नहीं पड़ा।
मुझे यकीन है कि अगर यह प्रासंगिक है नहीं कर रहा हूँ:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:fb="http://www.facebook.com/2008/fbml">
<f:view contentType="text/html">
<ui:insert name="metadata"/>
<h:head>
<!-- Some stuff here -->
<ui:insert name="content"/>
<!-- More stuff here -->
</h:head>
<h:body>
</h:body>
</f:view>
</html>
और पेज के प्रासंगिक बिट:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title></title>
</h:head>
<h:body>
<ui:composition template="/WEB-INF/templates/myLayout.xhtml">
<ui:define name="windowTitle">My Page</ui:define>
<ui:define name="metadata">
<f:event type="preRenderView" listener="#{myBean.preRenderView}"/>
</ui:define>
<ui:define name="content">
<!-- Some content here -->
<h:panelGroup id="reRenderable" layout="block">
<!-- More content here -->
<h:form prependId="false">
<h:outputLabel for="mySelector" value="Item:"/>
<h:selectOneMenu id="mySelector"
value="#{myBean.item}"
converter="#{myConverter}"
validator="#{itemActiveValidator.validate}">
<f:selectItems value="#{myBean.myItems}"/>
<f:ajax render=":reRenderable"/>
</h:selectOneMenu>
</h:form>
<!-- More content here -->
</h:panelGroup>
<!-- More content here -->
</ui:define>
</ui:composition>
</h:body>
</html>
यह एक बुरा बग है :(आप, या कोई और, इस से परेशान हैं, तो बग लिए वोट करें। –
पहले से ही किया था। मैं आवृत्ति हाल ही में वृद्धि के साथ चमक से स्पष्ट Mojarra कीड़े भर में आ रहा हूँ। यह नहीं है जैसे कि मैं ढांचे में विदेशी डिजाइनों और अजीब उपयोग के मामलों को shoehorn करने की कोशिश कर रहा हूं। –
आप सही हैं, हालांकि ईमानदार होने के लिए मैं अपने द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर के हर टुकड़े में चमकदार रूप से स्पष्ट बग का सामना कर रहा हूं (हाइबरनेट, फ़ायरफ़ॉक्स, आपका नाम यह) :( –