Struts: JSP: Zugriff auf Objekt in Array

mephiztophelez

Grünschnabel
Hallo,

ich stehe im Moment etwas auf dem Schlauch.
Ich moechte im JSP File mit einem <logic:iterate> tag durch einen Array vom ShoppingCart Objekten durchlaufen und dann die einzelnen Produkte im Warenkorb ausgeben.

Folgendes Test JSP funktioniert und gibt mir Zugriff auf den Name des Produktes. Mit einem <logic:iterate> und <bean:write... > bekomme ich es aber nicht hin.

Hier der funktionierende Code mit Skriptlet, den ich aber nicht verwenden will.

Code:
    <jsp:scriptlet>
ShopManager shopManager = new ShopManager();
Cart[] cartProducts = null;
cartProducts = shopManager.getCartProductsBySessId((String)request.getSession().getId());

</jsp:scriptlet>
<%= cartProducts.length %>  Products in your Shopping Cart
<%= cartProducts[0].getcPid() %>
<%= cartProducts[0].getProduct().getPname() %>

<%= cartProducts[1].getcPid() %>
<%= cartProducts[1].getProduct().getPname() %>

Die unteren ausgaben sind nur Tests, weil ich sehen wollte, ob ich so an das gewuenschte getPname komme und es klappt.

Mein Iterate sieht folgendermassen aus:
<logic:iterate name="shoppingCartForm" property="cartProducts" id="cartProducts">

Wie muss nun ein <bean:write... > aussehen um an
cartProducts.getProduct().getPname() ranzukommen.

Mit <bean:write name="cartProducts" property="Pname" />
bekomme ich immer einen Error, dass keine Getter Methode fuer Pname existiert.


Mein FormBean sieht folgendermassen aus:

Code:
public class ShoppingCartForm extends ActionForm {

    // --------------------------------------------------------- Instance Variables
    Cart[] cartProducts = new Cart[0];
    
    
    // --------------------------------------------------------- Methods

    /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {

       cartProducts = new Cart[0];
    }

    /**
     * @return Returns the cartProducts.
     */
    public Cart[] getCartProducts()
    {
        return cartProducts;
    }
    /**
     * @param cartProducts The cartProducts to set.
     */
    public void setCartProducts(Cart[] cartProducts)
    {
        this.cartProducts = cartProducts;
    }

}

Ich denke mir, dass ich im FormBean noch irgendwas machen muss, aber ich komme gerade nicht weiter.

Vielen Dank fuer eure Hilfe.
Ciao
Christoph
 
Zuletzt bearbeitet:
Frage hat sich erledigt. War ein Fluechtigkeitsfehler. Ich hatte statt
<bean:write name="cartProducts" property="product.pname" />

<bean:write name="cartProducts.product.pname" property="cartProducts" />

geschrieben.

Ciao
Christoph
 

Neue Beiträge

Zurück