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



         

Метод doPageMid


Метод doPageMid управляет ответом сервлета на запрос пользователя. Значение параметра action определяет выбор метода представления, который, в свою очередь, генерирует требуемое представление. Как показано в листинге 4.7, последовательность инструкций if определяет, какой из методов вызывается.

Листинг 4.7. Метод doPageMid (CatalogServ.java)

public void doPageMid( HttpServletRequest req, HttpServletResponse resp,

PrintWriter out, HttpSession session ){

String action = req.getParameter("action");

String select = req.getParameter("select");

if( "showcatalog".equals( action )){

if( select == null || select.equals("all") ){

completeCatalog( out );

}

else {

productLineCatalog( out, select );

}

}

else if( "selectkeyword".equals( action )){

if( select == null || select.equals("all") ){

doKeywordSelect( out );

}

}

else if( "keywdsearch".equals( action )) {

String keyword = req.getParameter("keyword");

if( keyword != null ){

keywordCatalog( out, keyword );

}

}

else if( "showproduct".equals( action ) ||

"setcart".equals( action) ){

doShowProduct( req, resp, out, session, action );

}else if( "showcart".equals( action ) ){

doShowCart( req, resp, out, session, action );

}

}

В методах completeCatalog (листинг 4.8) и productLineCatalog (листинг 4.9) используется один и тот же подход к генерированию таблицы, содержащей соответствующий список товаров (либо полный, либо одну серию). Основное различие заключается в том, что в методе completeCatalog, как видно на рис. 4.1, в таблице имеются три столбца — по одному на каждую серию товаров. Для выбора одной из этих серий следует вызвать метод setlnitialSelect класса CatalogBean. В случае если у вас имеется более четырех серий товаров, следует искать какой- нибудь другой метод отображения каталога, так как таблица с пятью и более столбцами будет выглядеть не слишком хорошо.

Текст HTML, относящийся к конкретному товару, будет иметь вид, подобный следующему:




Содержание  Назад  Вперед