Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

I know what to do but don't know how to implement it..

 
trupti nigam
Ranch Hand
Posts: 625
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,
I am developing a small shopping cart application in which I have one orderPage.java servlet. I am displaying the total items in the shopping cart. I have provided one button to proceed to checkout. At this stage if the user wants to update the number of items (he wants to order)he can do that by just changing the no of items text field. I know what to do when the user cliks the "update" button but I don't know exactly where to place the code. I mean there are 2 buttons so how to tell the servlet what to do when a particular button is pressed.
When the user cliks the "update" button the displaying items going to be same (same page is going to be displayed)only the ordered quantity (field) is going to change.

below is the code from the orderPage.java servlet.
synchronized(session)
{
Vector itemsOrdered = cart.getItemsOrdered();
if(itemsOrdered.size() == 0)
{
out.println("<h2><i>No items in your cart...</i></h2>");
}//if
else
{
out.println("<table border=1 align=\"center\">\n"+
"<tr bgcolor = \"#FFAD00\">\n"+
"<th>Item id<th>Description\n"+
"<th>Unit cost<th>Number<th>Total cost");
ItemOrder order;
NumberFormat formatter = NumberFormat.getCurrencyInstance();

String formURL = "servlet/myServlet.OrderPage";
formURL = response.encodeURL(formURL);

for(int i=0;i<itemsOrdered.size();i++)
{
order= (ItemOrder)itemsOrdered.elementAt(i);
out.println
("<tr>\n"+
"<td>"+ order.getItemId()+"\n"+
"<td>"+ order.getShortDescription()+"\n"+
"<td>"+
formatter.format(order.getUnitCost())+"\n"+
"<td>"+
"<form action=\""+formURL+"\">\n"+
"<input type=\"hidden\" name=\"itemId\" "+
"value = \""+order.getItemId()+"\">\n"+
"<input type=\"text\" name=\"numItems\" "+
"size=13 value = \""+
order.getNumItems()+"\">\n"+
"<small>\n"+
"<input type=\"submit\"\n "+
"value = \"Update Order\">\n"+
"</small>\n<p>\n</form>"+
"<td>"+
formatter.format(order.getTotalCost()) );



}//for

String checkOutURL = response.encodeURL("/myDevelopment/jsp/CheckOut.jsp");
out.println
("</table>"+
"<form action=\""+checkOutURL+"\">\n"+
"<big><center>\n"+
"<input type=\"Submit\" \n "+
"value = \"proceed to checkout\">\n"+
"</center></big></form>");
}//else

} // synchronized

thanks,
trupti
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34084
337
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can have the form's action send you to a different servlet depending on which button they clicked (using a different URL.) Alternatively, you can use a hidden input form field. You set this field to have a different value in each form. Then you can check the value of this parameter in your servlet.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic