Hello, Please I have a problem to which I'm stuck since this morning: I am trying to render the product list in a jsp page included into a struts 1.3.8 application and when iterating on the product entity parameters I get this exception: No getter method for property: "productName" of bean: "product" * Here is my Product Class:* import com.perforce.api.CommitException; import com.perforce.api.DirEntry; import com.perforce.api.Env; import com.perforce.api.HashDecay; import com.perforce.api.PerforceException; import com.perforce.api.SourceControlObject; import java.util.ArrayList; /** * * @author hbenrhouma */ public final class Product extends SourceControlObject { private String id = ""; private String productname = ""; private static HashDecay products = null; /** * Default no-argument constructor. */ public Product() { super(); getCache(); } /** * Constructor that accepts the id of the product. This simply creates an * instance that has the id set. No other information in the class will be * present until the sync() method is called. * * @param id Id for the product. */ public Product(String id) { this(); this.id = id; } private static HashDecay setCache() { if (null == products) { products = new HashDecay(600000); products.start(); } return products; } public HashDecay getCache() { return setCache(); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getProductName() { return productname; } public void setProductName(String productname) { this.productname = productname; } public static HashDecay getProducts() { return products; } public static void setProducts(HashDecay products) { Product.products = products; } /** * Returns an Enumeration of all Product objects. */ public static synchronized ArrayList getProducts(Env env) throws Exception { ArrayList nodes = new ArrayList(); try { DirEntry dir = new DirEntry(env, "//depot/*"); String[] dirs = dir.getDirNames(); for (int i = 0; i < dirs.length; i++) { nodes.add(dirs[i]); } } catch (Exception ex) { throw new Exception("getProducts couldn't be successfully executed"); } return nodes; } @Override public void commit() throws CommitException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void sync() throws PerforceException { throw new UnsupportedOperationException("Not supported yet."); } @Override public String toXML() { throw new UnsupportedOperationException("Not supported yet."); } } *Here is the ProductListForm * import java.util.ArrayList; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; /** * Creation date: 14-10-2009 * * @struts.form name="productListForm" */ public class ProductListForm extends ActionForm { private ArrayList products; public ArrayList getProducts() { return products; } public void setProducts(ArrayList products) { this.products = products; } /* 14.10.2009 * reset the collection products */ @Override public void reset(ActionMapping arg0, HttpServletRequest arg1) { products = new ArrayList(); } /** * Method validate * @param mapping * @param request * @return ActionErrors */ @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { return null; } } *Here is my ProductListAction* /** * Creation date: 14-10-2009 * * * @struts.action path="/productList" name="productListForm" scope="request" * validate="true" * @struts.action-forward name="showProductList" path="/jsp/productList.jsp" */ public class ProductListAction extends Action { /** * Method execute * * @param mapping * @param form * @param request * @param response * @return ActionForward */ @Override @SuppressWarnings("static-access") public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws PerforceException { ProductListForm productListForm = (ProductListForm) form; /* * 14.10.2009 load the session facade and get all products */ try { productListForm.setProducts(Product.getProducts((Env) request.getSession().getAttribute("env"))); } catch (Exception ex) { throw new PerforceException("Error while trying to execute productListForm.getProducts method"); //return mapping.findForward(FAILURE); } return mapping.findForward("showProductList"); } } *And last here is **productList.jsp* <%@ page language="java"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> Show Product List
<%-- set the header --%> <%-- start with an iterate over the collection products --%> <%-- product informations --%> <%-- end interate --%> <%-- if products cannot be found display a text --%>
Products
No products found.

Please, do you have any idea about what's written wrong here? Thanks in advance, Hanen