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>