1 23 package org.infoglue.deliver.taglib.common; 24 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 import javax.servlet.jsp.JspException ; 29 30 import org.apache.log4j.Logger; 31 import org.infoglue.deliver.taglib.TemplateControllerTag; 32 import org.infoglue.deliver.util.rss.RssHelper; 33 34 import com.sun.syndication.feed.synd.SyndEntry; 35 import com.sun.syndication.feed.synd.SyndFeed; 36 37 40 41 public class RSSFeedTag extends TemplateControllerTag 42 { 43 private final static Logger logger = Logger.getLogger(RSSFeedTag.class.getName()); 44 45 48 private static final long serialVersionUID = 8603406098980150888L; 49 50 private String feedType = null; 51 private String title = null; 52 private String link = null; 53 private String description = null; 54 private String encoding = "UTF-8"; 55 56 private List entries = new ArrayList (); 57 58 61 public RSSFeedTag() 62 { 63 super(); 64 } 65 66 72 public int doStartTag() throws JspException 73 { 74 return EVAL_BODY_INCLUDE; 75 } 76 77 83 public int doEndTag() throws JspException 84 { 85 try 86 { 87 RssHelper rssHelper = new RssHelper(); 88 SyndFeed feed = rssHelper.getFeed(this.feedType, this.title, this.link, this.description, this.encoding); 89 90 feed.setEntries(entries); 91 92 String rss = rssHelper.render(feed); 93 setResultAttribute(rss); 94 } 95 catch(Exception e) 96 { 97 logger.error("An error occurred when generating RSS-feed:" + e.getMessage(), e); 98 } 99 finally 100 { 101 entries = new ArrayList (); 102 } 103 104 return EVAL_PAGE; 105 } 106 107 public void setFeedType(String feedType) throws JspException 108 { 109 this.feedType = evaluateString("RssFeed", "feedType", feedType);; 110 } 111 112 public void setDescription(String description) throws JspException 113 { 114 this.description = evaluateString("RssFeed", "description", description); 115 } 116 117 public void setLink(String link) throws JspException 118 { 119 this.link = evaluateString("RssFeed", "link", link); 120 } 121 122 public void setTitle(String title) throws JspException 123 { 124 this.title = evaluateString("RssFeed", "title", title); 125 } 126 127 130 public void addFeedEntry(final SyndEntry entry) 131 { 132 this.entries.add(entry); 133 } 134 135 public void setEncoding(String encoding) 136 { 137 this.encoding = encoding; 138 } 139 } 140 | Popular Tags |