1 package org.springframework.samples.jpetstore.web.struts; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 6 import javax.servlet.http.HttpServletRequest ; 7 8 import org.apache.struts.action.ActionMapping; 9 10 import org.springframework.samples.jpetstore.domain.Order; 11 12 public class OrderActionForm extends BaseActionForm { 13 14 15 16 private static final List CARD_TYPE_LIST = new ArrayList (); 17 18 19 20 private Order order; 21 private boolean shippingAddressRequired; 22 private boolean confirmed; 23 private List cardTypeList; 24 25 26 27 static { 28 CARD_TYPE_LIST.add("Visa"); 29 CARD_TYPE_LIST.add("MasterCard"); 30 CARD_TYPE_LIST.add("American Express"); 31 } 32 33 34 35 public OrderActionForm() { 36 this.order = new Order(); 37 this.shippingAddressRequired = false; 38 this.cardTypeList = CARD_TYPE_LIST; 39 this.confirmed = false; 40 } 41 42 43 44 public boolean isConfirmed() { return confirmed; } 45 public void setConfirmed(boolean confirmed) { this.confirmed = confirmed; } 46 47 public Order getOrder() { return order; } 48 public void setOrder(Order order) { this.order = order; } 49 50 public boolean isShippingAddressRequired() { return shippingAddressRequired; } 51 public void setShippingAddressRequired(boolean shippingAddressRequired) { this.shippingAddressRequired = shippingAddressRequired; } 52 53 public List getCreditCardTypes() { return cardTypeList; } 54 55 56 57 public void doValidate(ActionMapping mapping, HttpServletRequest request, List errors) { 58 59 if (!this.isShippingAddressRequired()) { 60 addErrorIfStringEmpty(errors, "FAKE (!) credit card number required.", order.getCreditCard()); 61 addErrorIfStringEmpty(errors, "Expiry date is required.", order.getExpiryDate()); 62 addErrorIfStringEmpty(errors, "Card type is required.", order.getCardType()); 63 64 addErrorIfStringEmpty(errors, "Shipping Info: first name is required.", order.getShipToFirstName()); 65 addErrorIfStringEmpty(errors, "Shipping Info: last name is required.", order.getShipToLastName()); 66 addErrorIfStringEmpty(errors, "Shipping Info: address is required.", order.getShipAddress1()); 67 addErrorIfStringEmpty(errors, "Shipping Info: city is required.", order.getShipCity()); 68 addErrorIfStringEmpty(errors, "Shipping Info: state is required.", order.getShipState()); 69 addErrorIfStringEmpty(errors, "Shipping Info: zip/postal code is required.", order.getShipZip()); 70 addErrorIfStringEmpty(errors, "Shipping Info: country is required.", order.getShipCountry()); 71 72 addErrorIfStringEmpty(errors, "Billing Info: first name is required.", order.getBillToFirstName()); 73 addErrorIfStringEmpty(errors, "Billing Info: last name is required.", order.getBillToLastName()); 74 addErrorIfStringEmpty(errors, "Billing Info: address is required.", order.getBillAddress1()); 75 addErrorIfStringEmpty(errors, "Billing Info: city is required.", order.getBillCity()); 76 addErrorIfStringEmpty(errors, "Billing Info: state is required.", order.getBillState()); 77 addErrorIfStringEmpty(errors, "Billing Info: zip/postal code is required.", order.getBillZip()); 78 addErrorIfStringEmpty(errors, "Billing Info: country is required.", order.getBillCountry()); 79 } 80 81 if (errors.size() > 0) { 82 order.setBillAddress1(order.getShipAddress1()); 83 order.setBillAddress2(order.getShipAddress2()); 84 order.setBillToFirstName(order.getShipToFirstName()); 85 order.setBillToLastName(order.getShipToLastName()); 86 order.setBillCity(order.getShipCity()); 87 order.setBillCountry(order.getShipCountry()); 88 order.setBillState(order.getShipState()); 89 order.setBillZip(order.getShipZip()); 90 } 91 92 } 93 94 public void reset(ActionMapping mapping, HttpServletRequest request) { 95 super.reset(mapping, request); 96 shippingAddressRequired = false; 97 } 98 99 } 100 | Popular Tags |