1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package com.clarity; import java.io.Serializable; import java.net.URL; import java.util.LinkedList; import org.gnu.stealthp.rsslib.RSSChannel; import org.gnu.stealthp.rsslib.RSSHandler; import org.gnu.stealthp.rsslib.RSSItem; import org.gnu.stealthp.rsslib.RSSParser; import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named("rssFeed")@SessionScoped public class RSSFeed implements Serializable { private static final long serialVersionUID = 2L; private String feed, displayName; private RSSChannel channel; private LinkedList<RSSItem> savedItems = new LinkedList<RSSItem>(); public void fetch(String f, String dn) { assert f != null; assert dn != null; feed = f; displayName = dn; RSSHandler handler = new RSSHandler(); channel = handler.getRSSChannel(); try { RSSParser.parseXmlFile(new URL(feed), handler, true); } catch (Exception e) { channel = null; e.printStackTrace(); } } public LinkedList<RSSItem> getItems() { return channel == null ? null : channel.getItems(); } public LinkedList<RSSItem> getSavedItems() { return savedItems; } public RSSChannel getChannel() { return channel; } public String getFeed() { return feed; } public String getDisplayName() { return displayName; } } |
1 2 3 | <h:commandLink value="Apple" action="#{rssFeed.fetch('http://rss.news.yahoo.com/rss/applecomputer', 'Apple Computer')}"/> |
1 2 3 | <ui:repeat value="#{rssFeed.items}" var="item"> <a href="#{item.link}">#{item.title}</a> <ui:repeat> |
1 2 3 4 5 | <ui:repeat value="#{rssFeed.savedItems}" var="item"> <a href="#{item.link}"> #{ fn:substring(#{item.title}, 0, 25) } ... </a> <ui:repeat> |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |