Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- capture the wrong id for the checkbox [struts 1.3.8 Always capture the first ID]
- <body>
- <h1>Customer Cart</h1><h6><p align="left"><a href="logout">logout</a></p></h6>
- <!-- include the DB connection -->
- <%@ include file="DBconnection.jsp" %>
- <% String userID = (String) session.getAttribute("userID");
- String categoryID = (String) session.getAttribute("categoryID");
- String brandID = (String) session.getAttribute("brandID");
- System.out.println(userID);%>
- <!-- retrive the brands from DB to populate the select box -->
- <% String QueryString = "select cart.cartID, cart.itemID, cart.Qyt, item.itemName, item.itemPrice from cart , item where cart.itemID = item.itemID and customerID=" + userID + ";";
- %>
- <html:form action="/updateCart">
- <table border="0">
- <thead>
- <tr>
- <td colspan="5">
- <span style='color:red'>
- <i><html:errors property="checkbox" /></i>
- <i><html:errors property="cartQyt" /></i>
- </span>
- </td>
- </tr>
- <tr>
- <th></th>
- <th>Item Name</th>
- <th>Item Price</th>
- <th>Qyantity</th>
- </tr>
- </thead>
- <tbody>
- <%
- try {
- rs = stmt.executeQuery(QueryString);
- while (rs.next()) {
- int cartID = rs.getInt("cartID");
- int cartItemID = rs.getInt("itemID");
- String itemName = rs.getString("itemName");
- int itemPrice = rs.getInt("itemPrice");
- int Qyt = rs.getInt("Qyt");
- %>
- <tr>
- <td><input type="checkbox" name="checkbox" value="<%=cartID%>"/></td>
- <td><%=itemName%></td>
- <td><%=itemPrice%></td>
- <td><input type="text" name="cartQyt" value="<%=Qyt%>" /></td>
- <td colspan="4">
- <input type="hidden" name="cartItemID" value="<%=cartItemID%>"/>
- <input type="hidden" name="cartUserID" value="<%=userID%>"/>
- <input type="hidden" name="cartItemPrice" value="<%=itemPrice%>"/>
- <html:submit property="cartButton" value="Edit"/>
- <html:submit property="cartButton" value="Delete"/>
- <html:submit property="cartButton" value="Check out"/>
- <%
- }
- } catch (Exception e) {
- System.out.println("retrieve from DB:" + e);
- }
- %>
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td>
- <a href="userHome.jsp"><input type="button" name="back" value="back to home"/></a>
- </td>
- </tr>
- </tbody>
- </table>
- </html:form>
- </body>
- public class AddToCartForm extends org.apache.struts.action.ActionForm {
- private int Qyt;
- private int itemID;
- private int itemQyt;
- private int number;
- private int cartUserID;
- private int cartItemID;
- private int cartItemPrice;
- private int cartQyt;
- private String cartItemName;
- private int cartID;
- private String cartButton;
- private String checkbox;
- public String getCartButton() {
- return cartButton;
- }
- public void setCartButton(String cartButton) {
- this.cartButton = cartButton;
- }
- public String getCheckbox() {
- return checkbox;
- }
- public void setCheckbox(String checkbox) {
- this.checkbox = checkbox;
- }
- public int getCartID() {
- return cartID;
- }
- public void setCartID(int cartID) {
- this.cartID = cartID;
- }
- public int getCartItemID() {
- return cartItemID;
- }
- public void setCartItemID(int cartItemID) {
- this.cartItemID = cartItemID;
- }
- public String getCartItemName() {
- return cartItemName;
- }
- public void setCartItemName(String cartItemName) {
- this.cartItemName = cartItemName;
- }
- public int getCartItemPrice() {
- return cartItemPrice;
- }
- public void setCartItemPrice(int cartItemPrice) {
- this.cartItemPrice = cartItemPrice;
- }
- public int getCartQyt() {
- return cartQyt;
- }
- public void setCartQyt(int cartQyt) {
- this.cartQyt = cartQyt;
- }
- public int getCartUserID() {
- return cartUserID;
- }
- public void setCartUserID(int cartUserID) {
- this.cartUserID = cartUserID;
- }
- public int getItemQyt() {
- return itemQyt;
- }
- public void setItemQyt(int itemQyt) {
- this.itemQyt = itemQyt;
- }
- public int getItemID() {
- return itemID;
- }
- public void setItemID(int itemID) {
- this.itemID = itemID;
- }
- /**
- * @return
- */
- public int getQyt() {
- return Qyt;
- }
- /**
- * @param string
- */
- public void setQyt(int Qyt) {
- this.Qyt = Qyt;
- }
- /**
- * @return
- */
- public int getNumber() {
- return number;
- }
- /**
- * @param i
- */
- public void setNumber(int number) {
- this.number = number;
- }
- /**
- *
- */
- public AddToCartForm() {
- super();
- // TODO Auto-generated constructor stub
- }
- public class updateCartAction extends org.apache.struts.action.Action {
- /* forward name="success" path="" */
- private static final String SUCCESS = "success";
- private static final String FAILURE = "failure";
- // Initialize SQL connection equal null
- private Connection con = null;
- private ResultSet rs = null;
- private Statement stmt = null;
- /**
- * This is the action called from the Struts framework.
- * @param mapping The ActionMapping used to select this instance.
- * @param form The optional ActionForm bean for this request.
- * @param request The HTTP Request we are processing.
- * @param response The HTTP Response we are processing.
- * @throws java.lang.Exception
- * @return
- */
- @Override
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- //Initilized Action error
- ActionErrors errors = new ActionErrors();
- // set the session on
- HttpSession session = request.getSession(true);
- //Call AddToCartForm Instance here
- AddToCartForm formBean = (AddToCartForm) form;
- // define newQuantity and itemID and orderStatus and Qyt and itemPrice and customerID
- int newQuantity = 0;
- String orderStatus = "Open";
- //Initilize Date today = new Date();
- java.util.Date now = new java.util.Date();
- String DATE_FORMAT = "yyyy-MM-dd";
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
- String strDateNew = sdf.format(now);
- // extract user data
- //Integer cartUserID = formBean.getCartUserID();
- Integer checkbox = formBean.getCartID();
- Integer cartItemID = formBean.getCartItemID();
- Integer cartQyt = formBean.getCartQyt();
- String cartButton = formBean.getCartButton();
- Integer cartItemPrice = formBean.getCartItemPrice();
- Integer userID = Integer.parseInt(session.getAttribute("userID").toString());
- // check user data
- System.out.println("cart User whose ID is : " + userID + " want to " + cartButton + " the cart its ID is : " + cartItemID + " that contains the item its ID is : " + cartItemID + " with the Qyt :" + cartQyt);
- //Set up flag message
- boolean flag = false;
- // perform validation
- if ((checkbox == 0) || // checkbox parameter does not exist
- (checkbox < 1)){ // the user did not select any checkbox
- errors.add("checkbox", new ActionMessage("errors.checkbox.required"));
- }
- // perform validation
- if ((cartQyt == 0) || // cartQyt parameter does not exist
- (cartQyt < 1)){ // cartQyt parameter is empty
- errors.add("cartQyt", new ActionMessage("errors.cartQyt.required"));
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- }
- if (flag == true) {
- // start updateCartAction
- System.out.println("////////////////////////// Start updateCartAction /////////////////////////");
- // Now Start communicate with database
- try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/gsm", "root", "root");
- if (cartButton.equals("Delete")){ //// if the user select delete button
- try{
- // delete from cart
- PreparedStatement ps = (PreparedStatement) con.prepareStatement("DELETE FROM cart where cartID=?");
- ps.setInt(1, checkbox);
- //Execute all the above statement
- ps.execute();
- //Check which cartID was deleted
- System.out.println("Deleted from cart table, the cartID: " + checkbox);
- } catch (Exception e) {
- errors.add("SQLDeletingCart", new ActionMessage("errors.SQLDeletingCart"));
- System.out.println("ERROR Deleting : Did not delete cart info from the cart : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- }
- }else if (cartButton.equals("Edit")){ //// if the user select edit button
- try{
- // update the cart Qyt
- PreparedStatement ps = (PreparedStatement) con.prepareStatement("UPDATE cart SET Qyt=? where cartID=?");
- ps.setInt(1, cartQyt);
- ps.setInt(2, checkbox);
- //Execute all the above statement
- ps.execute();
- flag = true;
- //Check which cartID was deleted
- System.out.println("Updated the quantity in the cart: " + cartQyt + " for the cartID: " + checkbox);
- } catch (Exception e) {
- errors.add("SQLUpdatingCart", new ActionMessage("errors.SQLUpdating"));
- System.out.println("ERROR Updating : Did not update the Qyt in the cart : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- }else if (cartButton.equals("Check out")){ //// if the user select check out button
- try{
- try{
- // get the cart and item info
- PreparedStatement ps1 = (PreparedStatement) con.prepareStatement("select cart.itemID, cart.customerID, cart.Qyt, item.itemQyt, item.itemPrice from cart, item where cart.itemID=item.itemID and cart.cartID=?");
- ps1.setInt(1, checkbox);
- rs = ps1.executeQuery();
- if (rs.next()) // Succes
- {
- flag = true;
- int itemID = rs.getInt("itemID");
- int customerID = rs.getInt("customerID");
- int Qyt = rs.getInt("Qyt");
- int itemQyt = rs.getInt("itemQyt");
- int itemPrice = rs.getInt("itemPrice");
- //new quantity
- newQuantity = itemQyt - Qyt;
- ///// check the data
- System.out.println("The Item ID in the cart is: " + itemID + " and its price is : " + itemPrice + " for the customer whose ID is : " + customerID + " and the quantity selected is : " + Qyt + " from the total Qyt which is: " + itemQyt + " and the new Qyt for the item is : " + newQuantity);
- }
- flag = false;
- } catch (Exception e) {
- errors.add("SQLSelectingCartInfo", new ActionMessage("errors.SQLSelectingCartInfo"));
- System.out.println("ERROR Selecting : Did not get the cart and item info : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- try{
- // update the item Qyt in the item table after checking it out
- PreparedStatement ps2 = (PreparedStatement) con.prepareStatement("UPDATE item SET itemQyt=? WHERE itemID=?");
- ps2.setInt(1, newQuantity);
- ps2.setInt(2, cartItemID);
- int updateRows = ps2.executeUpdate();
- ps2.close();
- } catch (Exception e) {
- errors.add("SQLUpdatingItem", new ActionMessage("errors.SQLUpdatingItem"));
- System.out.println("ERROR Updating : Did not Update the itemQyt in the item table which the itemId is : " + cartItemID + " and the new Qyt is :" + newQuantity + " " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- try{
- // insert the cart info in the order table
- PreparedStatement ps3 = (PreparedStatement) con.prepareStatement("INSERT INTO customerOrder(oderStatus, OrderDate, orderQyt, orderTotalPrice, customerID, itemID)"
- + " VALUES (?,?,?,?,?,?) ");
- ps3.setString(1, orderStatus);
- ps3.setString(2, strDateNew);
- ps3.setInt(3, cartQyt);
- ps3.setInt(4, cartItemPrice);
- ps3.setInt(5, userID);
- ps3.setInt(6, cartItemID);
- ///// check the data
- System.out.println("The customer whose ID is: " + userID + " and his ordered item ID : " + cartItemID + " with price = " + cartItemPrice + " and quantity = " + cartQyt + " on that fate : " + strDateNew + " and the order status is : " + orderStatus);
- } catch (Exception e) {
- errors.add("SQLInsertingOrder", new ActionMessage("errors.SQLInsertingOrder"));
- System.out.println("ERROR Inserting : Did not insert the info in the order : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- try{
- // delete from cart table after check it out
- PreparedStatement ps = (PreparedStatement) con.prepareStatement("DELETE FROM cart where cartID=?");
- ps.setInt(1, checkbox);
- //Execute all the above statement
- ps.execute();
- } catch (Exception e) {
- errors.add("SQLDeletingCart", new ActionMessage("errors.SQLDeletingCart"));
- System.out.println("ERROR Deleting from cart : Did not delete the order from the cart : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- }catch(Exception e){
- System.out.println("ERROR : " + e);
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- }
- }catch (Exception ex) {
- errors.add("SQLException", new ActionMessage("errors.SQLException"));
- throw new SQLException(ex.fillInStackTrace());
- }
- //Close SQL server connection
- try {
- if (con != null) {
- con.close();
- }
- } catch (SQLException e) {
- throw new SQLException(e.getSQLState() + e.fillInStackTrace());
- }
- //Save error messages keys into the appropriate HTTP request attribute for use by the <html:errors> tag
- saveErrors(request, errors);
- //Check- is errors empty
- if (errors.isEmpty()) {
- flag = true;
- } else {
- flag = false;
- }
- if(flag) {
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(SUCCESS);
- }else {
- String UserID = (String)session.getAttribute("userID");
- session.setAttribute("userID", UserID);
- return mapping.findForward(FAILURE);
- }
- }
- return mapping.findForward(FAILURE);
- }
- }
Add Comment
Please, Sign In to add comment