Hi, i think that if you call property productname the getter should be getProductname() and not getProductName().
Is it correct? Bye, Marco Hanen Ben Rhouma wrote: > > 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() 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 <code>Enumeration</code> of all <code>Product</code> > objects. > */ > public static synchronized ArrayList getProducts(Env env) throws > Exception { > > ArrayList<String> nodes = new ArrayList<String>(); > 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"%> > > <html> > <head> > <title>Show Product List</title> > </head> > <body bgcolor="#FFFFFF" marginheight="0" marginwidth="0" topmargin="0" > leftmargin="0"> > <center> > <TABLE cellspacing="0" cellpadding="0" border="0"> > <table border="1"> > <tbody> > <%-- set the header --%> > <tr> > <td> > Products > </td> > > </tr> > <%-- start with an iterate over the collection > products --%> > <logic:iterate name="productListForm" > property="products" id="product"> > <tr> > <%-- product informations --%> > <td> > <bean:write name="product" > property="productName" /> > </td> > > </tr> > </logic:iterate> > <%-- end interate --%> > > <%-- if products cannot be found display a text > --%> > <logic:notPresent name="product"> > <tr> > <td colspan="5"> > No products found. > </td> > </tr> > </logic:notPresent> > > </tbody> > </table> > <br> > </center> > </body> > </html> > > Please, do you have any idea about what's written wrong here? > > > Thanks in advance, > Hanen > > -- View this message in context: http://www.nabble.com/No-getter-method-for-property%3A-%22productName%22-of-bean%3A-%22product%22-tp25893174p25958255.html Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org