新闻系统中调用重新生成RSS文件的代码如下:
/** boolean shouldUpdate = false; //不更新,则返回 Map root = new HashMap(); root.put("newslist", newsList); geneFileByFreeMarker("/news/rss.ftl", root, PropSet.getStringProp("rss.rssdir"), PropSet return true; |
在增加或者更新/删除新闻的地方需要调用这个renewRSS函数.
(二)JSP动态方式
相对静态方式而言,简单的多,不过效率上可能就不太好了.
webwork2的Action代码如下:
newsList = 装载新闻代码 |
视图Jsp如下:
<%@ page contentType="text/xml; charset=UTF-8"%> <%@ taglib uri="jscud" prefix="jscud" %> <%@ taglib uri="webwork" prefix="ww" %> <ww:bean name="’com.jscud.www.util.RSSUtil’" id="rssUtil" /> <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>JScud Develop</title> <link>http://www.jscud.com/</link> <language>zh-cn</language> <description >JScud Develop By Scud</description> <webMaster>xxx@21cn.com(scud)</webMaster> <lastBuildDate><ww:property value="#rssUtil.nowDateTime" /></lastBuildDate> <ww:iterator value="newsList"> <item> <title><ww:property value="#rssUtil.formatString2XML(title)"/></title> <link>http://www.jscud.com/srun/news/viewhtml/<ww:property value="htmlFilePath" />/<ww:property value="nid" />.htm</link> <pubDate><ww:property value="#rssUtil.formatRssDate(addtime)" /></pubDate> <description><![CDATA[ <ww:property value="#rssUtil.formatRssCData(showContent)"/> ]]> </description> </item> </ww:iterator> </channel> </rss> |