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




Класс NetNewsBean - часть 2


Метод getContentByKeyWord, показанный в листинге 9.32, контролирует выбор и формат заголовков, содержащих одно или несколько ключевых слов, введенных пользователем.

Листинг 9.32. Метод, контролирующий поиск заголовков по ключевым словам (NetNewsBean.java)

public String getContentByKeyWord( String kwds, String fmt ){ if( newsM == null ) return noDataStr ; StringBuffer sb = new StringBuffer(1000); if( newsM.usable ){ Element[] art = newsM.articlesByKeyWord( kwds ); for( int i = 0 ; i < art.length ; i++ ){ sb.append( newsM.formatElement( art[i], fmt )); sb.append("\n"); } } else { sb.append( dataSourceErr ); sb.append( newsM.lastErr ); } return sb.toString(); }

Альтернативным вариантом является представление всех заголовков новостей, которое осуществляется методом getAllTopics. Как показано в листинге 9.33, для каждого заголовка этот метод создает строку, содержащую форматированный текст заголовка.

Листинг 9.33. Метод getAHTopics форматирует все имеющиеся заголовки (NetNewsBean.java)

public String getAllTopics( String fmt ){ if( newsM == null ) return noDataStr ; StringBuffer sb = new StringBuffer(1000); if( newsM.usable ){ Element[] art = newsM.getAllTopics(); for( int i = 0 ; i < art.length ; i++ ){ sb.append( newsM.formatElement( art[i], fmt )); sb.append("\n"); } } else { sb.append( dataSourceErr ); sb.append( newsM.lastErr ); } return sb.toString(); }

На рис 9 3 показана страница с заголовками свежих новостей, выбранных в соответствии с указанными ключевыми словами и форматированных методом getContentByTopic, который приведен в листинге 934

3.gif

Рис. 9.3. Представление заголовков сообщений

Листинг 9.34. Метод getContentByTopic (NetNewsBean.java)

public String getContentByTopic( String content, String fmt ){ if( newsM == null ) return noDataStr ; StringBuffer sb = new StringBuffer(1000); if( newsM.usable ){ Element[] art = newsM.articlesByTopic( content ); if( art == null ) return dataSourceErr ; for( int i = 0 ; i < art.length ; i++ ){ sb.append( newsM.formatElement( art[i], fmt )); sb.append("\n"); } } else { sb.append("getContentByTopic " + dataSourceErr ); sb.append("getContentByTopic " + newsM.lastErr ); } return sb.toString(); }

public String toString() { StringBuffer sb = new StringBuffer("NetNewsBean "); return sb.toString() ; }

}




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