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

       

Пример JSP-страницы


Для рассматриваемого нами примера JSP-страницы новостей ее основной формой является таблица с тремя столбцами. Чтобы уменьшить размер листинга, мы предельно сократили эту страницу; на реальной странице, разумеется, содержится гораздо больше сообщений, связанных с фирмой.

Привлекательность JSP-страниц объясняется как раз простотой включения выходных данных Java в разметку HTML. В листинге 8.19 показано начало JSP- страницы, где создается первая строка таблицы.

Листинг 8.19. Первая часть упрощенной JSP-страницы для отображения новостей (mockup.jsp)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>The XMLGifts News </title> </head>

<body bgcolor="#FFFFFF"> <%@ page language="java" import= "com.XmlEcomBook.Chap08.NewsFormatter,java.io.*" %> <%! String newsFilePath = "e:\\scripts\\CompanyNews" ; String newsFileName = "thenews.xml" ; String newsHandler = "http://localhost:8080/XMLbook/Chap08/thenews.jsp" ; File newsFile = new File( newsFilePath, newsFileName ); public void jspInit(){ super.jspInit(); NewsFormatter.setHandler( newsHandler ); } %>

<table width="89%" border="0" align="left" cellpadding="8"> <tr align="center" bgcolor="cyan"> <td colspan="3"><font size="4"> Various Corporate Navigation Links Go Here</font> </td> </tr>

Чтобы не усложнять пример, мы жестко запрограммировали тему сообщений — музыкальные компакт-диски (листинг 8 20) Первый раз объект NewsFormatter используется для создания левого столбца таблицы, где расположены заголовки сообщений. Это делается в первую очередь, так как, когда тематика сообщений задана, объект NewsFormatter будет содержать только данные по сообщениям, соответствующим выбранной тематике

Листинг 8.20. Продолжение JSP-страницы с выходными данными NewsFormatter (mockup.java)


<!-- the nf and pw objects will be used for all three td --> <tr valign="TOP" ><font size="3"> <td><b>News Headlines</b><br> <% // topic could be set from customer records or the previous form String topic = "CDs" ; NewsFormatter nf = new NewsFormatter( newsFile ); PrintWriter pw = new PrintWriter( out );
/* Note the doNews signature doNews( PrintWriter out, String hs, String fs, String topstr, String sz, String age, int skpN, int mxN ) */ // headlines - all topics nf.doNews( pw, "","", "", "H", null, 0, 8 ); %>
</td> <td width="50%"> <% nf.doNews( pw, "","", topic, "L", null, 0, 1 ); %>
</td>
<!-- the short form column --> <td width="23%">
<%= "<b>Recent news items about " + topic + "</b><br>" %>
<%
/* Note the doNews signature doNews( PrintWriter out, String hs, String fs, String topstr, String sz, String age, int skpN, int mxN ) */
nf.doNews( pw, "","", topic, "S", null, 1, 8 ); %>
</td> </font> </tr> <tr align="center" bgcolor="cyan"> <td colspan="3"><font size="4" > Repeat the Navigation links here for convenience<br></font> </td> </tr> <tr> <td colspan="3" align='center'> <font face='arial, helvetica' size='3'> &copy;2000 XMLGifts.com<sup>SM</sup> <br /></font> </td> </tr> </table> </body> </html>
 


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