Гибкость содержимого - часть 3
Листинг 3.13. Метод setlmtialSelected из CatalogBean (CatalogBean.java)
public boolean setInitialSelect(String s){
boolean ret = false ;
if( s.equals("all") ){
selected = cat.getAllProduct(); ret = true ;
}
else {
selected = cat.getProductsByPL( s );
if( selected != null ) ret = true ;
else {
System.out.println("not working yet");
}
}
return ret ;
}
public String doOutput( int n ){
return pf.doOutput( selected[n] );
}
В классе Catal ogBean имеется также метод doOutput, который просто вызывает метод doOutput класса ProductFormatter Элемент (товар), к которому применяется последний метод, указывается как n-й элемент массива selected:
public String doOutput( int n ){
return pf doOutput( selected[n] );
}
Теперь мы можем объединить все написанные нами компоненты для создания форматированной HTML-страницы, отображающей весь каталог. В листинге 3 14 приведен метод сервлета doPost, который устанавливает заголовок страницы, затем создает теги <head> и <title>, за которыми следует строка, содержащая тег <link> для связывания HTML-страницы с таблицей стилей. Затем следует тег <boby> и вызывается метод completeCatalog Далее пишутся закрывающие теги и закрывается выходной поток PnntWnter
Листинг 3.14. Метод doPost сервлета, отображающий весь каталог (CatalogTestServ.java)
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
PrintWriter out = new PrintWriter(resp.getOutputStream());
String action = req.getParameter("action");
out.println("<html>");
out.println("<head><title>CatalogTestServ Output</title>");
out.println( cssLink );
out.println("</head>\r\n<body>");
try {
if( "showcatalog".equals( action )){
completeCatalog( out );
}
else if( "selectkeyword".equals( action )){
doKeywordSelect( out );
}