Lucas Pereira wrote on Jun 10, 2008 21:05:
I had this same problem...
The problem was solved when I updated the version of jsf-impl.jar e jsf-api.jar.
Now I am using this version:
 1.2_08-b06-FCS
jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\jsf-libs
It looks like a rendering problem... the isSelected method was not being called.
I hope this helps...
Lucas Pereira
I tried doing your way but I was not successful in that procedure.
I am using two action classes both with Event Scope. I am sending you the code of the classes please take a look at it and see if u can save the problem
LocationFactory.java
This is the class in which I have DataModelSelection
@Name("locationFactory")
@Scope(ScopeType.EVENT)
public class LocationFactory {
     @In(create = true) SalesPersonActionBean salesPersonAction;
     @In(create = true) LocationService locationService;
     @In(create = true, required = false) CustomerActionFactory customerActionFactory;
     
     @DataModel
     private List<Locations> lstLocations;
     @DataModelSelection("lstLocations")
     @Out(required = false, scope=ScopeType.SESSION)
     Locations location;
     
     UIDatascroller locationDatascroller;
     
     @SuppressWarnings("unchecked")
     @Factory(value = "lstLocations")
     public void listLocations() {
          int locationsPageFirstIndex;
          List listLocationSubSetRecords;          
          Long locationCount;
          java.util.Vector locationsVector = new Vector();
          locationCount = locationService
                    .getLocationRowCount(customerActionFactory.getCustomerWrapper()
                              .getCustomers().getCustomerNumber());
          locationsVector.setSize(locationCount.intValue());
          
          // This statement fetches the current pages first row index
          
          locationsPageFirstIndex = (this.getLocationDatascroller().getPage() * 
                    this.getLocationDatascroller().getDataTable().getRows()) - 
                    this.getLocationDatascroller().getDataTable().getRows();
          
          
          listLocationSubSetRecords = locationService.getLocations(
                    salesPersonAction.getLocationOrderField(), salesPersonAction
                              .isAscendingOrder(), locationsPageFirstIndex,
                    customerActionFactory.getCustomerWrapper().getCustomers()
                              .getCustomerNumber());
          for (int index = 0; index < listLocationSubSetRecords.size(); index++) {
               locationsVector.set(locationsPageFirstIndex + index,
                         listLocationSubSetRecords.get(index));
          }
          lstLocations = locationsVector;
     }
     
     public void nullLocationList(){
          this.lstLocations = null;
     }
     public List<Locations> getLstLocations() {
          return lstLocations;
     }
     public void setLstLocations(List<Locations> lstLocations) {
          this.lstLocations = lstLocations;
     }
     public UIDatascroller getLocationDatascroller() {
          return locationDatascroller;
     }
     public void setLocationDatascroller(UIDatascroller locationDatascroller) {
          this.locationDatascroller = locationDatascroller;
     }
     public Locations getLocation() {
          return location;
     }
     public void setLocation(Locations location) {
          this.location = location;
     }
}LocationPrinterFactory.java
@Name("locationPrinterFactory")
@Scope(ScopeType.EVENT)
public class LocationPrinterFactory {
     
     @In(create = true)LocationPrinterService locationPrinterService;
     @In(create = true, required = false)LocationFactory locationFactory;
     @DataModel private List<Locationprinters> lstLocationPrinters;
     
     UIDatascroller locationPrinterDatascroller;
     
     @SuppressWarnings("unchecked")
     @Factory("lstLocationPrinters")
     public void listLocationPrinters() {
          Long locationPrinterCount;
          Vector locationPrintersVector = new Vector();
          
          int locationPrinterCurrentPageIndex;
          int locationPrintersPageFirstIndex;
          List listLocationPrintersSubSetRecords;
          
*System.out.println("this.this.locationFactory.getLocation().getLocationName(): " + this.locationFactory.getLocation().getLocationName());
System.out.println("this.locationFactory.getLocation.getLocationNumber: " + this.locationFactory.getLocation().getLocationNumber());*
          
          locationPrinterCount = locationPrinterService
                    .getlocationPrinterRowCount(this.locationFactory.getLocation().getLocationNumber());
          locationPrintersVector.setSize(locationPrinterCount.intValue());
          
          // This statement fetches the current pages first row index
          locationPrintersPageFirstIndex = (this.locationPrinterDatascroller.getPage() *
                    this.locationPrinterDatascroller.getDataTable().getRows()) - 
                    this.locationPrinterDatascroller.getDataTable().getRows();
          
          listLocationPrintersSubSetRecords = locationPrinterService
                    .getLocationPrinter(locationPrintersPageFirstIndex,
                              this.locationFactory.getLocation().getLocationNumber());
          for (int index = 0; index < listLocationPrintersSubSetRecords.size(); index++) {
               locationPrintersVector.set(locationPrintersPageFirstIndex + index,
                         listLocationPrintersSubSetRecords.get(index));
          }
          lstLocationPrinters = locationPrintersVector;
     }
     public List<Locationprinters> getLstLocationPrinters() {
          return lstLocationPrinters;
     }
     public void setLstLocationPrinters(List<Locationprinters> lstLocationPrinters) {
          this.lstLocationPrinters = lstLocationPrinters;
     }
     public UIDatascroller getLocationPrinterDatascroller() {
          return locationPrinterDatascroller;
     }
 
     public void setLocationPrinterDatascroller(
               UIDatascroller locationPrinterDatascroller) {
          this.locationPrinterDatascroller = locationPrinterDatascroller;
     }
          
     public void nullLocationPrinter(){
          this.lstLocationPrinters = null;
     }     
}I am trying to access the DataModelSelection in LocationPrinterFactory class but it always print me the very first value.