Электронный магазин на Java и XML

       

JSP-страница Creditlnfo


Объект Shippinglnfo, связанный с определенным сеансом, создается в JSP-странице Creditlnfo. Информация о доставке, которая была введена в форму в JSP- странице Shippinglnfo, используется в JSP-странице Creditlnfo. Выбранный способ доставки заносится в параметр с именем shipperAndClass, а затем элемент jsp:setProperty вызывает метод setShipperAndClass объекта Shippinglnfo со значением этого параметра. Как уже говорилось ранее, при этом задается сразу и почтовая фирма, и вид доставки, то есть поля shipper и shippingClass (листинг 5.19).

Листинг 5.19. Указание способа доставки (Creditlnfo.jsp)

<%@ page import="com.XmlEcomBook.Chap05.*" %>

<jsp:useBean scope="session" id="shippingInfo" class="Fulfillment" />

<jsp:setProperty name="shippingInfo" property="*" />

В этой JSP-странице сначала задается объект Fullfilment, связанный с данным сеансом и содержащийся в объекте Order. Также создается объект ShippingCalculator, который используется для подсчета выбранного способа доставки. После того как знак $ убран из строки с указанием цены, Shippinglnfo преобразуется к типу double и используется для вызова метода setCostToCustomer объекта Shippinglnfo (листинг 5.20).

Листинг 5.20. Определение стоимости доставки (Creditlnfo.jsp)

<jsp:useBean scope="session" id="order" class="Order" />

<% order.setFulfillment( shippingInfo );

ShippingCalculator calc = new ShippingCalculator( order );

String s = request.getParameter( "shipperAndClass" );



String price = calc.getPrice( s );

price = price.replace( '$', ' ' );

shippingInfo.setCostToCustomer ( Double.parseDouble( price ) );%>

Код HTML этой JSP-страницы используется для сбора необходимой информации о кредитной карте клиента. В первую очередь мы хотели бы отобразить в таблице полностью всю сумму, которую мы собираемся снять со счета клиента. Мы показываем общую стоимость покупки, стоимость доставки и суммарную стоимость заказа. Далее выводится форма, в которой клиент указывает тип своей кредитной карты, номер и дату окончания срока действия, как показано в листинге 5.21.




Листинг 5.21. Код HTML, который формируется в JSP-странице Creditlnfo (Creditlnfo.jsp)

<html>

<head><title>Credit Card Information</title></head>

<body>

Your order price<br />

<table>

<tr><td>Items</td><td><%=order.getTotalItemPrice()%> </td></tr>

<tr><td>Shipping</td><td><%=price%></td></tr>

<tr bgcolor="yellow"><td>Total</td><td> <%=order.getOrderTotal()%></td></tr>

</table>

Please enter your credit card information:

<form action="ConfirmInfo.jsp">

<p>

Credit Card Type:

<input type="radio" name="creditCardType" value="Visa">

Visa

</input>

<input type="radio" name="creditCardType" value="Master Card">

Master Card

</input>

<input type="radio" name="creditCardType" value="American Express">

American Express

</input>

<input type="radio" name="creditCardType" value="Discover">

Discover

</input>

</p>

<p>Credit Card Number:<input name="creditCardNumber" /> </p>

<p>Expiration Date:<input name="expirationDate" /></p>

<input type="submit" value="Submit information">

</form>

</body>

</html>

 




Содержание раздела