Una página/frijol mío tiene su caso preRenderView
disparó dos veces en la primera carga de la página a continuación 2 + n
veces para cada devolución de datos, donde n
es el número de devoluciones (incluyendo la actual) que se han producido.JSF preRenderView llamado demasiadas veces
Después de leer algunas otras publicaciones aquí, moví <f:event type="preRenderView" listener="myBean.preRenderView"/>
fuera de <f:metadata/>
y eso redujo el número de llamadas a en una. Es decir, se llama una vez en la carga de página completa y 1 + n
veces para cada devolución. Incluso traté de mover la etiqueta <f:event/>
fuera de <f:view/>
, pero no tuvo ningún efecto.
No estoy seguro si esto es relevante: la página utiliza una plantilla:
<!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>
y los bits correspondientes de la página:
<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>
Eso es un error desagradable :(Si usted, o cualquier otra persona, molesta por esto, vote por el insecto. –
ya lo hicieron. Voy a través de insectos Mojarra salta a la vista con mayor frecuencia últimamente. No es como si estuviera tratando de calzar diseños exóticos y casos de uso extraños en el marco. –
Tienes razón, aunque para ser honesto me encuentro con errores evidentemente obvios en casi todos los programas que uso (Hibernate, Firefox, tu nombre it) :( –