Wondering how reRender of dropdowns works ??? especially if it has 10,000 values in it
public List getBuildingList(){ logger.info(" *** In getBuildingList() Backing Bean size= "); if(buildingSelectItems == null ) this.buildingSelectItems = doGetBuildingList(); return buildingSelectItems; } public List doGetBuildingList() { logger.info(" *** In doGetBuildingList() Backing Bean"); }
<h:inputText id="propertyTag" value="#{deviceBean.tagNumber}" > <a4j:support action="#{deviceBean.loadAssetDetails}" event="onblur" reRender="manuf,model,serialNo,building,floor,colBay,location" /> </h:inputText> <h:selectOneMenu id="building" value="#{deviceBean.selectedBuilding}" > <f:selectItem itemLabel="" itemValue="" /> <f:selectItems value="#{deviceBean.buildingList}" /> </h:selectOneMenu>
a4j does not change the renderer of the existing component, but just use them as they are. So, if selectOneMenu outputs 10,000 line on the screen during the non-ajax response, it will send then as well during the ajax response.