I have  following dropdown 

Code: 

<h:panelGrid columns="3" styleClass="detail" columnClasses="label"> 
          <h:outputText value="Manufacturer" /> 
              
          <h:selectOneMenu id="manufList"
value="#{manufacturerBean.selectedManufacturer}" >   
            <f:selectItem itemLabel="New" itemValue="New" /> 
            
              <f:selectItems value="#{manufacturerBean.manufacturerList}" />   
              <a4j:support
action="#{manufacturerBean.loadManufacturerDetails}" event="onchange"
reRender="manufName,manufDescription,manufSource,btnSave,btnDelete" />          
 
           </h:selectOneMenu>             
            </h:panelGrid> 

        
The perfomance issue is Whenever i pick a  value from the dropdown it
results in 3 datbase calls 
Here is the sequence of method calls 
- First time the method in f:selectItems gets called which results in a
database call
<f:selectItems value="#{manufacturerBean.manufacturerList}" />
- Second time as expected/desired Ajax4JSF onchange event action method gets
called 
<a4j:support action="#{manufacturerBean.loadManufacturerDetails}"
event="onchange"
reRender="manufName,manufDescription,manufSource,btnSave,btnDelete" />
- Third time again the method in f:selectItems gets called which results in
a database call
<f:selectItems value="#{manufacturerBean.manufacturerList}" />

I understand its due to JSF Lifcycle. 


Any pointers/suggestion on how to Cache the method getManufacturerList() to
avoid unnecessary database calls will be highly appreciated

Regards
Bansi

-- 
View this message in context: 
http://www.nabble.com/Caching-JSF-Dropdown-Results-tf3805830.html#a10770409
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to