OK, I am arround to do an RSS. Does RSS always have one image per channel? How do I find available RSS feeds? Moreover?
If I can get a stupid servlet to do a simple Read .... Vic Ted Husted wrote: >There's a menu package here > >http://husted.com/about/struts/resources.htm#extensions > >that you might like to use. > >I'm working on some routines for RSS Content Syndication that use the >RSS Digester. It's not difficult. You just get a bean from the Digester >and pass it to the view. Here's a sample Action: > >import java.io.IOException; >import javax.servlet.ServletException; >import javax.servlet.http.HttpServletRequest; >import javax.servlet.http.HttpServletResponse; >import org.apache.portlet.PortletDataHashMap; >import org.apache.commons.digester.rss.RSSDigester; >import org.apache.commons.digester.rss.Channel; >import org.apache.struts.action.Action; >import org.apache.struts.action.ActionError; >import org.apache.struts.action.ActionErrors; >import org.apache.struts.action.ActionForm; >import org.apache.struts.action.ActionForward; >import org.apache.struts.action.ActionMapping; >import org.apache.struts.action.ActionServlet; > >/** > * Read and parse RSS file found at a given > * path, save the Channel bean in request scope, > * and forward to "continue". > * @expects path={uri} on command line or as parameter property to >ActionMapping. > * @expects an input page or error forwarding if exception digesting RSS > * @author Ted Husted > * @version $Revision:1.1 $ $Date: 2000/09/05 $ > */ >public final class Fetch extends Action { > > // --------------------------------------------------------- >Instances Variables > // --------------------------------------------------------- Public >Methods > > /** > * Request attribute key for saving Channel bean > */ > public static final String CHANNEL_KEY = "CHANNEL"; > > > /** > * Main process of class. Reads, parses > */ > public ActionForward perform(ActionMapping mapping, > ActionForm form, > HttpServletRequest request, > HttpServletResponse response) > throws IOException, ServletException { > > ActionErrors errors = new ActionErrors(); > Channel channel = null; > > String path = request.getParameter("path"); > if (path==null) path = mapping.getParameter(); > try { > RSSDigester digester = new RSSDigester(); > channel = (Channel) digester.parse(path); > } > catch (Throwable t) { > errors.add(ActionErrors.GLOBAL_ERROR, > new ActionError("rss.access.error")); > servlet.log(t.toString()); > } > > // -- Handle Errors --- > if (!errors.empty()) { > saveErrors(request, errors); > if (mapping.getInput()!=null) > return (new ActionForward(mapping.getInput())); > // If no input page, use error forwarding > return (mapping.findForward("error")); > } > > // -- Save Bean, and Continue --- > request.setAttribute(CHANNEL_KEY,channel); > return (mapping.findForward("continue")); > } // ---- End perform ---- > >} // ---- End Fetch ---- > >I'm about to upload a patch to the Digester that adds an getItems() >access to the Channel bean, which makes it sweet to use with bean:write. >On the view side, you just need to do something like: > ><%-- >/** > * Summarize channel as unadorned HTML. > * @parameters Channel CHANNEL > * @author Ted Husted > * @version $Revision: 1.1 $ $Date: 2001/09/06 $ >*/ >--%> ><%@ page language="java" %> ><%@ taglib uri="/tags/struts-bean" prefix="bean" %> ><%@ taglib uri="/tags/struts-logic" prefix="logic" %> ><html:html/> ><HEAD> ><TITLE><bean:write name="CHANNEL" property="title"/></TITLE> ><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ><html:base/> ></HEAD> ><BODY> ><TABLE cellspacing="2" cellpadding="4" width="90%" align="center"> ><TR> ><TD><logic:present name="CHANNEL" property="image"><img src="<bean:write >name="CHANNEL" property="image.URL"/>"></logic:present></TD> ><TD width="100%"><a href="<bean:write name="CHANNEL" property="link"/>"> ><bean:write name="CHANNEL" property="title"/></a></TD> ></TR> ><TD colspan="2"><bean:write name="CHANNEL" property="description"/></TD> ></TR> ></TABLE> ><logic:iterate name="CHANNEL" property="items" id="ITEM"> ><HR width="90%"> ><TABLE cellspacing="2" cellpadding="4" width="90%" align="center"> ><TR> ><TD><h4><bean:write name="ITEM" property="title"/></h4></TD> ></TR> ><TR> ><TD><bean:write name="ITEM" property="description"/></TD> ></TR> ><TR> ><TD align="right">... <a href="<bean:write name="ITEM" >property="link"/>">more</a></TD> ></TR> ></TABLE> ></logic:iterate> ><HR width="90%"> ></BODY> ></HTML> > >This uses the updates version of Struts-digester from the Commons, that >I just committed, and that should be in tomorrow's snapshot < >http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-digester/ > >>. >> > >But, this is not something that needs to be the framework, just in some >sample applications. Cedric or I will probably add a RSS example to the >Tiles tutorial. > >Ditto for PDF. All you need is something that would return the PDF via >the Response, and then return NULL to the controller. The frameworks >isn't really involved. > >Anything that is being actively considered would be on the TODO list. >There are no other development discussion areas beside the Struts-Dev >list. > >-- Ted Husted, Husted dot Com, Fairport NY USA. >-- Custom Software ~ Technical Services. >-- Tel +1 716 737-3463 >-- http://www.husted.com/about/struts/ > > >Vic Cekvenich wrote: > >> >>Is there thinking that soone there will be a menu included in struts >>distribution (1.1a or 1.2)? >> There are a few out, which is the most popular to use in my app? >> >>What about RSS content syndication recomendation? PDF support? >> >>My 2c and Questions, >>Vic >> > >