瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          公告

          公眾號:
          QQjava交流群:51374316



          相冊

          搜索

          •  

          積分與排名

          • 積分 - 2843384
          • 排名 - 2

          最新隨筆

          Spring rss 實例

          Posted on 2012-05-09 10:01 瘋狂 閱讀(2899) 評論(0)  編輯  收藏 所屬分類: spring

          Spring rss 實例

          從spring 3 開始可以使用內置的方法來實現實現rss或者atom
          org.springframework.web.servlet.view.feed.AbstractRssFeedView
          org.springframework.web.servlet.view.feed.AbstractAtomFeedView

           

          本實例使用org.springframework.web.servlet.view.feed.AbstractRssFeedView來實現rss

          步驟

          1:加入相關jar

          加入rome-x.jarjdom.jar

          2:加入視圖解析(這里使用BeanNameViewResolver,此resolver的原理是返回的viewNamespringcontext里面的name相同),如果有多個resolver需要設置order

          <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
                 
          <property name="order" value="0"/>
              
          </bean>
          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp">
                 
          <property name="order" value="1"/>
          </bean>


          3:實現RssView,繼承自AbstractRssFeedView

          @Component("rssView")//這個地方的配置要和后面controller的viewName一樣
          public class RssView extends AbstractRssFeedView {   
                  @Override 
                  
          protected void buildFeedMetadata(Map<String,Object> model, Channel feed,   
                          HttpServletRequest request) 
          {   
                      String feedTitle 
          = (String)model.get("feedTitle");   

                      String feedDesc 
          = (String)model.get("feedDesc");   

                      String feedLink 
          = (String)model.get("feedLink");   
                      feed.setTitle(feedTitle);  
                      feed.setDescription(feedDesc);  
                      feed.setLink(feedLink);   
                  }
              

                @Override 
                  
          protected List<Item> buildFeedItems(Map<String, Object> model,   

                          HttpServletRequest request, HttpServletResponse response)   

                          
          throws Exception {      

                      @SuppressWarnings(
          "unchecked")   
                      List
          <RssItem> rssItems = (List<RssItem>) model.get("rssItemList");       
                      List
          <Item> feedItems = new ArrayList<Item>();   
                      
          for (RssItem rssItem : rssItems) {   

                          Item feedItem 
          = new Item();   
                          feedItem.setTitle(rssItem.getTitle());   
                          feedItem.setAuthor(rssItem.getAuthor());   
                          feedItem.setPubDate(rssItem.getDatePublished());       
                          Description desc 
          = new Description();   
                          desc.setValue(rssItem.getDescription());   
                          feedItem.setDescription(desc);   
                          feedItem.setLink(rssItem.getLink());   
                          feedItems.add(feedItem);   
                      }
                 
                      
          return feedItems;   
                  }
             
              }

           


           4 Controller

          @Controller
          @RequestMapping(value 
          = "rss")
          public class RssMgr {
              @RequestMapping(value 
          = "test_rss.htm")
              
          public String testRss(Model model) {
                 List
          <RssItem> rssItems = new ArrayList<RssItem>();
                 
          for (int i = 0; i < 5; i++{
                     RssItem n 
          = new RssItem();
                     n.setTitle(
          "第【"+i+"】條spring Rss測試消息標題");
                     n.setDescription(
          "第【"+i+"】測試消息內容說明");
                   n.setLink(
          "http://localhost:8080/springdemo/someurl.html");
                     n.setAuthor(
          "作者:瘋狂");
                     n.setDatePublished(
          new Date());
                     rssItems.add(n);
                 }

                 model.addAttribute(
          "rssItemList", rssItems);   
                 
          // 頻道的相關信息
                 model.addAttribute(
          "feedTitle""spring RSS 測試");
                 model.addAttribute(
          "feedDesc""spring RSS 測試頭條新聞");
                 model.addAttribute(
          "feedLink",
                 http:
          //localhost:8080/springdemo/rss/test_rss.htm);

                 
          return "rssView";
              }


          }

           

          訪問:http://localhost:8080/springdemo/rss/test_rss.htm

          返回:

           

           

          主站蜘蛛池模板: 武冈市| 隆昌县| 宣威市| 蒙山县| 来凤县| 赞皇县| 长垣县| 馆陶县| 台山市| 靖西县| 永昌县| 马公市| 乌拉特后旗| 杂多县| 松阳县| 齐河县| 洪雅县| 剑阁县| 江西省| 桃源县| 台山市| 德清县| 临泉县| 紫云| 定州市| 德阳市| 扎赉特旗| 波密县| 富宁县| 虹口区| 乌兰察布市| 永德县| 庄河市| 大英县| 刚察县| 土默特左旗| 西和县| 沙田区| 马山县| 河西区| 金坛市|