1 20 package org.openi.web; 21 22 import org.apache.log4j.Logger; 23 24 import org.openi.menu.Menu; 25 import org.openi.project.ProjectContext; 26 import org.openi.util.Util; 27 import org.openi.xml.BeanStorage; 28 import org.openi.xml.RssFeedGenerator; 29 import org.openi.xml.XMLTransformer; 30 31 import java.io.FileInputStream ; 32 import java.io.IOException ; 33 import java.io.InputStream ; 34 import java.io.StringBufferInputStream ; 35 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 import javax.xml.transform.TransformerException ; 39 40 41 52 public class RssFeedGeneratorServlet extends javax.servlet.http.HttpServlet { 53 private static Logger logger = Logger.getLogger(RssFeedGeneratorServlet.class); 54 55 public void service(HttpServletRequest request, HttpServletResponse response) { 56 try { 57 String encoding = request.getParameter("encoding"); 58 59 if (request.getParameter("static") != null) { 60 RssFeedGenerator.exportFeed(response.getWriter(), 61 RssFeedGenerator.createStaticChannel(), encoding); 62 }else{ 63 String xml = null; 64 String menu = request.getParameter("menu"); 65 ProjectContext context = (ProjectContext)request.getSession().getAttribute("projectContext"); 66 if(menu == null){ 67 xml = new BeanStorage().toXmlString(context.buildMenu()); 68 }else{ 69 xml = new BeanStorage().toXmlString(context.buildMenu().getSubMenu(menu)); 70 } 71 72 String xsl = Util.getFileContents(this.getServletContext() 73 .getRealPath("WEB-INF/openi/menu2rss.xsl")); 74 75 String rss = XMLTransformer.transform(xsl, xml); 76 response.getWriter().write(rss); 77 } 78 } catch (IOException e) { 79 logger.error(e); 80 } catch (TransformerException e) { 81 logger.error(e); 82 } 83 } 84 85 86 } 87 | Popular Tags |