Hi,

Thanks. My action class is as follows. It is very basic. The confusion is that I can call a property once but it fails as soon as I try to even call the same property a second time. It is beyond reasoning.

Chris

package sentiments.struts2.checkout;

import sentiments.struts2.ShopAction;
import sentiments.business.service.ShopService;
import sentiments.business.domain.cart.Item;
import sentiments.business.domain.cart.Order;
import sentiments.business.domain.PersonalDetails;
import sentiments.business.domain.Product;

import javax.ejb.EJB;
import java.util.List;
import java.util.Calendar;
import java.util.ArrayList;

import com.opensymphony.xwork2.Action;

public class ProcessOrderAction extends ShopAction {
   @EJB
   private ShopService shopService;
   private Order order;
   private List<Item> items;
   private List<PersonalDetails> shippingDetails;

   public void prepare() throws Exception {
       this.items = this.getCartMgr().getItems();
       this.shippingDetails = buildUniqueShippingDetails();
       attachItemsToShippingDetails();
   }

   private void attachItemsToShippingDetails() {
       for (PersonalDetails shippingDetails : this.shippingDetails) {
           List<Product> products = new ArrayList<Product>();
           // For each item in the cart.
           for (Item item : this.items) {
               // If this item is being sent to that shipping address.
               if (item.getShippingDetails().equals(shippingDetails)) {
                   products.add(item.getProduct());
               }
           }
           // Attach the products.
           shippingDetails.setProducts(products);
       }
   }

   private List<PersonalDetails> buildUniqueShippingDetails() {
       List<PersonalDetails> personalDetailses =
               new ArrayList<PersonalDetails>();

       for (Item item : this.items) {
PersonalDetails existingShippingDetails = item.getShippingDetails();
           if (existingShippingDetails != null
&& !personalDetailses.contains(existingShippingDetails)) {
               personalDetailses.add(existingShippingDetails);
           }
       }
       return personalDetailses;
   }

   public String confirmOrderDetails() throws Exception {
this.addActionMessage("Please confim your order. Once you place the order payment will be taken.");
       return Action.SUCCESS;
   }

   public Order getOrder() {
       return order;
   }

   public void setOrder(Order order) {
       this.order = order;
   }

   public List<Item> getItems() {
       return items;
   }

   public void setItems(List<Item> items) {
       this.items = items;
   }

   public List<PersonalDetails> getShippingDetails() {
       return shippingDetails;
   }

   public void setShippingDetails(List<PersonalDetails> shippingDetails) {
       this.shippingDetails = shippingDetails;
   }
}

----- Original Message ----- From: "Ken" <ken.mcwilli...@aerose.com>
To: "Struts Users Mailing List" <user@struts.apache.org>
Sent: Thursday, July 01, 2010 10:46 PM
Subject: Re: Nested Iterator Problem


His editor should be fine with Unicode... hmm, post your action bean.

On Thu, 2010-07-01 at 14:30 -0700, Chris Pratt wrote:

On my screen it looks like there's a British pound sign in the text, which I
believe is outside the ASCII characters set, I'm just wondering if that
could be causing the trouble.  It's definitely something I've never tried
myself.
  (*Chris*)






---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to