<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: taglib code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 01:48:22 GMT</pubDate>
    <description>DZone Snippets: taglib code</description>
    <item>
      <title>RSS jsp taglib v 0.2</title>
      <link>http://snippets.dzone.com/posts/show/2962</link>
      <description>// taglib to display rss in jsp page &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package com.ranjan.feedreader;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Created by IntelliJ IDEA.&lt;br /&gt; * User: Rapid&lt;br /&gt; * Date: Oct 9, 2006&lt;br /&gt; * Time: 3:18:23 PM&lt;br /&gt; * To change this template use File | Settings | File Templates.&lt;br /&gt; */&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;&lt;br /&gt;import com.sun.syndication.feed.module.Module;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;br /&gt;import com.sun.syndication.io.SyndFeedInput;&lt;br /&gt;import com.sun.syndication.io.XmlReader;&lt;br /&gt;import javax.servlet.jsp.JspContext;&lt;br /&gt;&lt;br /&gt;import javax.servlet.jsp.tagext.Tag;&lt;br /&gt;import javax.servlet.jsp.tagext.TagSupport;&lt;br /&gt;import javax.servlet.jsp.JspException;&lt;br /&gt;&lt;br /&gt;/* this tag should return the RSS feed as it is&lt;br /&gt; *it's purpose is to retrieve rss feeds&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class FeedReader extends TagSupport{&lt;br /&gt;&lt;br /&gt;    private String url = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    SyndFeedInput input ;&lt;br /&gt;    URL feedUrl;&lt;br /&gt;    SyndFeed feed ;&lt;br /&gt;    String html ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public String getUrl() {&lt;br /&gt;        return url;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setUrl(String url) {&lt;br /&gt;        this.url = url;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int doStartTag() throws JspException {&lt;br /&gt;&lt;br /&gt;        return EVAL_BODY_INCLUDE;    //To change body of overridden methods use File | Settings | File Templates.&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int doEndTag() throws JspException {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            try  {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                feedUrl  = new URL(url);&lt;br /&gt;&lt;br /&gt;                input  = new SyndFeedInput();&lt;br /&gt;&lt;br /&gt;                feed = input.build(new XmlReader(feedUrl));&lt;br /&gt;/*&lt;br /&gt;                String metaRSS = "Title: " + feed.getTitle() + "\n" +&lt;br /&gt;                "Author: " + feed.getAuthor()  + "\n" +&lt;br /&gt;                 "Description: " + feed.getDescription()  + "\n" +&lt;br /&gt;                 "Pub date: " + feed.getPublishedDate()  + "\n" +&lt;br /&gt;                 "Copyright: " + feed.getCopyright() ;&lt;br /&gt;&lt;br /&gt;                 pageContext.getOut().write( metaRSS );&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;                  html =&lt;br /&gt;&lt;br /&gt;                        "&lt;table border='1'&gt;" +&lt;br /&gt;                        "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getTitle() +&lt;br /&gt;                            "&lt;/td&gt;" +&lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;                            "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getDescription() +&lt;br /&gt;                            "&lt;/td&gt;" +&lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;                         "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getCopyright() +&lt;br /&gt;                            "&lt;/td&gt;" +&lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;table&gt;" ;&lt;br /&gt;&lt;br /&gt;                                    //"&lt;td&gt; &lt;a href = '#' onclick = " + "\"" + "popup_rss_article('" + /**/ + "') \"" + "&gt;" + /**/  + "&lt;/a&gt;&lt;/td&gt;"                      &lt;br /&gt;                                   for( Iterator iter = feed.getEntries().iterator(); iter.hasNext(); ){&lt;br /&gt;                                   &lt;br /&gt;                                   html +=  "&lt;tr&gt;" +&lt;br /&gt;                                                   createHREF(((SyndEntry)iter.next()).getLink() , ((SyndEntry)iter.next()).getTitle() )  +&lt;br /&gt;                                   //             "&lt;td&gt; &lt;a href = '#' onclick = " + "\"" + "popup_rss_article('" +((SyndEntry)iter.next()).getLink() + "') \"" + "&gt;" + ((SyndEntry)iter.next()).getTitle()  + "&lt;/a&gt;&lt;/td&gt;" +&lt;br /&gt;                                            "&lt;/tr&gt;"; &lt;br /&gt;                                   //((SyndEntry)iter.next()).getLink().toString()&lt;br /&gt;                                    }&lt;br /&gt;&lt;br /&gt;                        html +=&lt;br /&gt;                                "&lt;/table&gt;" +&lt;br /&gt;                         "&lt;/tr&gt;" +&lt;br /&gt;                        "&lt;/table&gt;" ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                pageContext.getOut().write( html );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex) {&lt;br /&gt;                ex.printStackTrace();&lt;br /&gt;                System.out.println("ERROR: " + ex.getMessage());&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        return EVAL_PAGE;    //To change body of overridden methods use File | Settings | File Templates.&lt;br /&gt;    }&lt;br /&gt;    public String createHREF( String link, String value )&lt;br /&gt;    {&lt;br /&gt;        return  "&lt;td&gt; &lt;a href = '#' onclick = " + "\"" + "popup_rss_article('" + link + "') \"" + "&gt;" + value  + "&lt;/a&gt;&lt;/td&gt;";        &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//////////////////////////////////////////&lt;br /&gt;tld     /////////////////////////////////&lt;br /&gt;//////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 03 Nov 2006 18:08:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2962</guid>
      <author>ranjan_company (ranjan)</author>
    </item>
    <item>
      <title>taglib for rss  v 0.1</title>
      <link>http://snippets.dzone.com/posts/show/2960</link>
      <description>// jsp taglibrary for rss&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// the java code&lt;br /&gt;package com.ranjan.feedreader;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Created by IntelliJ IDEA.&lt;br /&gt; * User: Rapid&lt;br /&gt; * Date: Oct 9, 2006&lt;br /&gt; * Time: 3:18:23 PM&lt;br /&gt; * To change this template use File | Settings | File Templates.&lt;br /&gt; */&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;&lt;br /&gt;import com.sun.syndication.feed.module.Module;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;br /&gt;import com.sun.syndication.io.SyndFeedInput;&lt;br /&gt;import com.sun.syndication.io.XmlReader;&lt;br /&gt;import javax.servlet.jsp.JspContext;&lt;br /&gt;&lt;br /&gt;import javax.servlet.jsp.tagext.Tag;&lt;br /&gt;import javax.servlet.jsp.tagext.TagSupport;&lt;br /&gt;import javax.servlet.jsp.JspException;&lt;br /&gt;&lt;br /&gt;/* this tag should return the RSS feed as it is &lt;br /&gt; *it's purpose is to retrieve rss feeds &lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class FeedReader extends TagSupport{&lt;br /&gt;&lt;br /&gt;    private String url = null;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    SyndFeedInput input ;&lt;br /&gt;    URL feedUrl;&lt;br /&gt;    SyndFeed feed ;&lt;br /&gt;    String html ;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    public String getUrl() {&lt;br /&gt;        return url;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setUrl(String url) {&lt;br /&gt;        this.url = url;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public int doStartTag() throws JspException {&lt;br /&gt;&lt;br /&gt;        return EVAL_BODY_INCLUDE;    //To change body of overridden methods use File | Settings | File Templates.&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int doEndTag() throws JspException {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            try  {&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;                feedUrl  = new URL(url);&lt;br /&gt;&lt;br /&gt;                input  = new SyndFeedInput();&lt;br /&gt;                &lt;br /&gt;                feed = input.build(new XmlReader(feedUrl));&lt;br /&gt;/*&lt;br /&gt;                String metaRSS = "Title: " + feed.getTitle() + "\n" +&lt;br /&gt;                "Author: " + feed.getAuthor()  + "\n" +&lt;br /&gt;                 "Description: " + feed.getDescription()  + "\n" +&lt;br /&gt;                 "Pub date: " + feed.getPublishedDate()  + "\n" +&lt;br /&gt;                 "Copyright: " + feed.getCopyright() ;&lt;br /&gt;&lt;br /&gt;                 pageContext.getOut().write( metaRSS );&lt;br /&gt;*/&lt;br /&gt;               &lt;br /&gt;                  html =       &lt;br /&gt;&lt;br /&gt;                        "&lt;table border='1'&gt;" +&lt;br /&gt;                        "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getTitle() + &lt;br /&gt;                            "&lt;/td&gt;" + &lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;                            "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getDescription() + &lt;br /&gt;                            "&lt;/td&gt;" + &lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;                         "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;td&gt;" + feed.getCopyright() +&lt;br /&gt;                            "&lt;/td&gt;" + &lt;br /&gt;                        "&lt;/tr&gt;" +&lt;br /&gt;                        &lt;br /&gt;                                        &lt;br /&gt;                        "&lt;tr&gt;" +&lt;br /&gt;                            "&lt;table&gt;" ;&lt;br /&gt;                  &lt;br /&gt;                                   for( Iterator iter = feed.getEntries().iterator(); iter.hasNext(); ){&lt;br /&gt;                                   html +=  "&lt;tr&gt;" +&lt;br /&gt;                                                "&lt;td&gt;&lt;a href = " + ((SyndEntry)iter.next()).getLink() + "&gt;" +   &lt;br /&gt;                                                    ((SyndEntry)iter.next()).getTitle() + "&lt;/a&gt;" + &lt;br /&gt;&lt;br /&gt;                                                "&lt;/td&gt;" +&lt;br /&gt;                                              &lt;br /&gt;                                                "&lt;/tr&gt;" ;&lt;br /&gt;                                   &lt;br /&gt;                                   //((SyndEntry)iter.next()).getLink().toString() &lt;br /&gt;                                    }       &lt;br /&gt;                   &lt;br /&gt;                        html += &lt;br /&gt;                                "&lt;/table&gt;" +&lt;br /&gt;                         "&lt;/tr&gt;" +                        &lt;br /&gt;                        "&lt;/table&gt;" ;&lt;br /&gt;                           &lt;br /&gt;                &lt;br /&gt;                pageContext.getOut().write( html );&lt;br /&gt;                &lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex) {&lt;br /&gt;                ex.printStackTrace();&lt;br /&gt;                System.out.println("ERROR: " + ex.getMessage());&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        return EVAL_PAGE;    //To change body of overridden methods use File | Settings | File Templates.&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;//////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;//  the tld file &lt;br /&gt;//////////////////////////////////////////////////&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"&gt;&lt;br /&gt;  &lt;tlib-version&gt;1.0&lt;/tlib-version&gt;&lt;br /&gt;  &lt;short-name&gt;rss&lt;/short-name&gt;&lt;br /&gt;  &lt;uri&gt;/WEB-INF/tlds/rss&lt;/uri&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;tag&gt;&lt;br /&gt;       &lt;name&gt;rss&lt;/name&gt;&lt;br /&gt;       &lt;tag-class&gt;com.ranjan.feedreader.FeedReader&lt;/tag-class&gt;&lt;br /&gt;       &lt;body-content&gt;empty&lt;/body-content&gt;&lt;br /&gt;          &lt;attribute&gt;&lt;br /&gt;            &lt;name&gt;url&lt;/name&gt;&lt;br /&gt;            &lt;required&gt;true&lt;/required&gt;&lt;br /&gt;            &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;&lt;br /&gt;          &lt;/attribute&gt;&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;  &lt;/tag&gt;    &lt;br /&gt;  &lt;!-- A validator verifies that the tags are used correctly at JSP&lt;br /&gt;         translation time. Validator entries look like this: &lt;br /&gt;      &lt;validator&gt;&lt;br /&gt;          &lt;validator-class&gt;com.mycompany.TagLibValidator&lt;/validator-class&gt;&lt;br /&gt;          &lt;init-param&gt;&lt;br /&gt;             &lt;param-name&gt;parameter&lt;/param-name&gt;&lt;br /&gt;             &lt;param-value&gt;value&lt;/param-value&gt;&lt;br /&gt;	  &lt;/init-param&gt;&lt;br /&gt;      &lt;/validator&gt;&lt;br /&gt;   --&gt;&lt;br /&gt;  &lt;!-- A tag library can register Servlet Context event listeners in&lt;br /&gt;        case it needs to react to such events. Listener entries look&lt;br /&gt;        like this: &lt;br /&gt;     &lt;listener&gt;&lt;br /&gt;         &lt;listener-class&gt;com.mycompany.TagLibListener&lt;/listener-class&gt; &lt;br /&gt;     &lt;/listener&gt;&lt;br /&gt;   --&gt;&lt;br /&gt;   &lt;br /&gt;&lt;/taglib&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 03 Nov 2006 12:38:54 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2960</guid>
      <author>ranjan_company (ranjan)</author>
    </item>
  </channel>
</rss>
