-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: to get product itmes based on category A
PostPosted: Wed Jun 24, 2009 12:41 pm 
Newbie

Joined: Thu Jan 22, 2009 1:53 am
Posts: 5
Env.:Spring 2.5 Hibernate 3 icefaces 1.7
I try to convert all the products items to product beans depends param_catelog id.
but I always get null value in converting method.
I use two backing bean 1.productbean 2.productlistbean
Here is part of backing bean
#backing bean-productbean
Code:
public class ProductBean extends BaseBean {
   //the product id
   private String id ;
   
   //the product name
   private String name;
   
   //the product description
   private String description;
   
   //the product price
   private double price;
   
   //the product width
   private double width;
   
   //the product height
   private double height;
   
   //the category ids associated with the product
   private Set productCategories;
   
   //the category id selected by the user on the page
   private List selectedCategoryIds;
.
.
.
.
.
public Set getCategoryIds() {
      return this.productCategories;
   }
   
   public void setCategoryIds(Set newCategoryIds) {
      this.productCategories = newCategoryIds;
      
      if (this.productCategories != null) {
         this.selectedCategoryIds = ViewUtils.convertToList(this.productCategories);
      }
   }
   
   public List getSelectedCategoryIds() {
      return this.selectedCategoryIds;
   }
   
   public void setSelectedCategoryIds(List newSelectedCategoryIds) {
      this.selectedCategoryIds = newSelectedCategoryIds;
      this.productCategories = ViewUtils.convertToSet(selectedCategoryIds);
   }

#backing bean-productlistbean
Code:
public class ProductListBean extends BaseBean {
   
   private static final int DEFAULT_PRODUCTS_PER_PAGE = 6;
   
   
   private List productBeans;
   
   
   private List currentProductBeans;
   
   
   private Map productBeansMap;
   
   
   private String currentCategoryId;
   
   
   private String currentCategoryName;
   

   private int productsPerPage;
   
      private int totalPages;
   
   
   private int pageNo;
   
   
   public ProductListBean() {
      this.productBeans = new ArrayList();
      this.currentProductBeans = new ArrayList();
      this.productBeansMap = new HashMap();
      
      this.logger.debug("ProductListBean is created");
   }
   
   
   protected void init() {
      try {
         List products = this.serviceLocator.getCatalogService().getAllProducts();
         //getCatalogService().getAllProducts();
         log.info("products size = " + products.size());
         for (int i=0; i<products.size(); i++) {
            Product product = (Product)products.get(i);
            
            ProductBean productBean = ProductBuilder.createProductBean(product);
            productBean.setServiceLocator(this.serviceLocator);
            
            this.productBeans.add(productBean);
         }
         
         this.currentProductBeans = this.productBeans;
         
         this.setProductsPerPage();
         
         this.buildProductBeansMap();
      } catch (Exception e) {
         String msg = "Could not initialize ProductListBean";
         log.info("Could not initialize ProductListBean", e);
         throw new FacesException(msg, e);
      }
      
      this.log.info("ProductListBean is initialized"+currentProductBeans);
   }

public String searchByCategoryAction() {
      this.currentCategoryId = FacesUtils.getRequestParameter(RequestParamNames.CATEGORY_ID);
      String pageNoString = FacesUtils.getRequestParameter(RequestParamNames.PAGE_NO);
      
      try {
         this.pageNo = Integer.parseInt(pageNoString);
      } catch (Exception e) {
         this.pageNo = 1;
      }
      
      this.totalPages = 0;
      
      this.currentProductBeans = new ArrayList();
      
      this.logger.debug("searchByCategoryAction is invoked");
      log.info("categoryId = " + this.currentCategoryId);
      log.info("pageNo = " + this.pageNo);
      
      if (this.currentCategoryId == null || this.currentCategoryId.equals("")) {
         //get all products, no pagination
         this.currentProductBeans = this.productBeans;
      
         return NavigationResults.PRODUCT_LIST;
      }
      else {
         //catalog
      
         Map categoryProductBeans = (Map)this.productBeansMap.get(currentCategoryId);
         log.info("categoryProductBeans Map = " + categoryProductBeans);
         if (categoryProductBeans != null) {
            this.totalPages = categoryProductBeans.size();
            log.info("total pages = " + this.totalPages);
            List productBeans = (List)categoryProductBeans.get(new Integer(this.pageNo));
            log.info("List productbeans = " + this.productBeans.size());
            if (productBeans != null) {
               this.currentProductBeans = productBeans;
            }
         }
         
         log.info("currentProductBeans size = " + this.currentProductBeans.size());
         
         //set current category name
         this.currentCategoryName = FacesUtils.getApplicationBean().getCategoryName(this.currentCategoryId);
         log.info("currentCategoryName = " + this.currentCategoryName);
         
         return NavigationResults.CATALOG;
      }
   }
private void buildProductBeansMap() {
      log.info("buildProductBeansMap is invoked");
      
      this.productBeansMap = new HashMap();
      
      Map categoryProductsMap = new HashMap();
      
      for (int i=0; i<this.productBeans.size(); i++) {
         ProductBean product = (ProductBean)this.productBeans.get(i);
         log.info("product_buildMap"+product.getId());
         Set categoryIds = product.getCategoryIds();
         log.info("product_categoryIds"+categoryIds);
         Iterator ite = categoryIds.iterator();
         while (ite.hasNext()) {
            String categoryId = (String)ite.next();
            
            if (! categoryProductsMap.containsKey(categoryId)) {
               //new category
               List list = new ArrayList();
               list.add(product);
               categoryProductsMap.put(categoryId, list);
            }
            else {
               List list = (List) categoryProductsMap.get(categoryId);
               list.add(product);
            }
         }
      }
      
      Iterator ite = categoryProductsMap.keySet().iterator();
      
      while (ite.hasNext()) {
         Object category = ite.next();
         
         List productBeans = (List)categoryProductsMap.get(category);
         this.productBeansMap.put(category, this.pagination

****log result****
Code:
2009-06-23 11:37:50,173: buildProductBeansMap is invoked
2009-06-23 11:37:50,173: product_buildMapL001
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL002
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL003
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL004
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL005
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL006
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL007
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: product_buildMapL008
2009-06-23 11:37:50,173: product_categoryIds[]
2009-06-23 11:37:50,173: ProductListBean is initialized[id=L001 name=Product1, id=L002 name=Product2, id=L003 name=Product3, id=L004 name=Product4, id=L005 name=Product5, id=L006 name=Product6, id=L007 name=Product7, id=L008 name=Product8]
2009-06-23 11:37:50,173: service locator is set
2009-06-23 11:37:50,173: categoryId = 1
2009-06-23 11:37:50,173: pageNo = 1
2009-06-23 11:37:50,173: categoryProductBeans Map = null
2009-06-23 11:37:50,173: currentProductBeans size = 0
2009-06-23 11:37:50,173: currentCategoryName = null

as you known, buildProductBeansMap array has null value. also categoryProductBeans Map = null

so looked the production bean and call ViewUtil pacage
***ViewUtil****
Code:
import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;


public class ViewUtils {
   /**
    * Convert a list to a set.
    *
    * @param orig the list to be converted
    * @return the set converted from the list
    */
   public static Set convertToSet(List orig) {
      Set result = new HashSet();
      
      if (orig != null) {
         Iterator ite = orig.iterator();
         
         while (ite.hasNext()) {
            result.add(ite.next());
         }
      }
      
      return result;
   }
   
   /**
    * Convert a set to a list.
    * @param orig the set to be converted
    * @return the list converted from the set
    */
   public static List convertToList(Set orig) {
      List result = new ArrayList();
      
      if (orig != null) {
         Iterator ite = orig.iterator();
         
         while (ite.hasNext()) {
            result.add(ite.next());
         }
      }
      
      return result;
   }
}

would you help me how to fix this problem . thanks in advances


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.