幻境
          We are extremely fortunate not to know precisely the kind of world we live in
          posts - 22,comments - 39,trackbacks - 0

          Grails本身好像并沒有產生rss的插件。如果要用grails產生Rss,可以使用Rome。方法大概如下:

          下載需要的庫文件

          https://rome.dev.java.net/下載Rome,之后把rome-xxx.jar放到你的grails項目的lib目錄下。這里xxx是版本號。比如我的是rome-1.0RC1.jar

          再到http://www.jdom.org/下載JDom。之后同樣是把jdom.jar放到lib目錄下。

          書寫代碼

          創建一個controller,當然你也可以在你已經有的controller里面增加相應方法。這里我們創建一個叫做FeedController的類。

          ?1?import?com.sun.syndication.feed.synd.*;???
          ?2?import?com.sun.syndication.io.SyndFeedOutput;???
          ?3????????????????
          ?4?class?FeedController?{???
          ?5????????
          ?6?????def?supportedFormats?=?[?"rss_0.90",?"rss_0.91",?"rss_0.92",?"rss_0.93",?"rss_0.94",?"rss_1.0",?"rss_2.0",?"atom_0.3"]???
          ?7???
          ?8???????????????????
          ?9?????????????????????????????????
          10????????
          11?????def?rss?=?{???
          12????????????????
          13?????????????render(text:?getFeed("rss_1.0"),?contentType:"text/xml",?encoding:"UTF-8")???
          14????????
          15?????}???
          16????????
          17?????def?atom?=?{???
          18????????????????
          19?????????????render(text:?getFeed("atom_1.0"),?contentType:"text/xml",?encoding:"UTF-8")???
          20????????????????????????
          21?????}???
          22???
          23?????//?or?specify?your?own?feed?type???
          24?????def?all?=?{???
          25?????????????def?format?=?params.id???
          26?????????????if?(supportedFormats.contains(format))?{???
          27?????????????????render(text:?getFeed(format),?contentType:"text/xml",?encoding:"UTF-8")???
          28?????????????}?else?{???
          29?????????????????response.sendError(response.SC_FORBIDDEN);???
          30?????????????}??????????????????
          31?????}???
          32????????
          33????????
          34?????def?getFeed(feedType)?{???
          35????????????
          36?????????def?items?=?Post.list(max:?5,?sort:?"created",?order:?"desc")???
          37????????????????
          38?????????def?entries?=?[]???
          39?????????items.each?{?item?->???
          40?????????????def?desc?=?new?SyndContentImpl(type:?"text/plain",?value:?item.description);???
          41?????????????def?entry?=?new?SyndEntryImpl(title:?item.name?+?"?-?"?+?item.summary,????
          42?????????????????????link:?'http://www.ondev.net/item/show/'?+?item.name,???
          43?????????????????????publishedDate:?item.created,?description:?desc);???
          44?????????????entries.add(entry);???
          45???
          46?????????}???
          47?????????SyndFeed?feed?=?new?SyndFeedImpl(feedType:?feedType,?title:?'標題',???
          48?????????????????link:?'http://www.ondev.net',?description:?'說明性文字',???
          49?????????????????entries:?entries);???
          50????????????
          51?????????StringWriter?writer?=?new?StringWriter();???
          52?????????SyndFeedOutput?output?=?new?SyndFeedOutput();???
          53?????????output.output(feed,writer);???
          54?????????writer.close();???
          55????????????
          56?????????return?writer.toString();???
          57???
          58????????????
          59?????}???
          60????????
          61?}??
          62?

          之后訪問相應的頁面,比如說http://www.ondev.net/feed/rss就可以了

          原貼地址: http://www.ondev.net/story/show/75

          posted on 2008-09-06 13:42 閱讀(1656) 評論(0)  編輯  收藏 所屬分類: 編程相關
          主站蜘蛛池模板: 铅山县| 西贡区| 衡水市| 法库县| 漳浦县| 湖南省| 芦溪县| 博罗县| 宁阳县| 涞水县| 吴忠市| 汝阳县| 都昌县| 和静县| 当雄县| 华安县| 马公市| 江山市| 惠水县| SHOW| 尉氏县| 车险| 哈尔滨市| 谢通门县| 玉田县| 类乌齐县| 彰化县| 阿荣旗| 吕梁市| 海城市| 天台县| 七台河市| 新蔡县| 绵阳市| 东莞市| 三门县| 屯留县| 古蔺县| 台州市| 天津市| 洛宁县|