2012-06-17 64 views
0

我遵循mkyong的教程(http://www.mkyong.com/spring-mvc/spring-3-mvc-and-rss-feed-example/),這非常有用。根據這個教程中,我創建一個模型類和以下類我嘗試爲我的網站創建RSS提要,並使用Spring MVC提供RSS提要和apache tile。

public class CustomRssViewer extends AbstractRssFeedView{ 


    @Override 
protected void buildFeedMetadata(){ 
     //some code 
    } 

    @Override 
protected List<Item> buildFeedItems(){ 
     //some code 
    } 


} 

最後控制器類

@Controller 
    public class RssController { 

    @RequestMapping(value="/rssfeed", method = RequestMethod.GET) 
    public ModelAndView getFeedInRss() { 

      //set the RSS content 
      ModelAndView mav = new ModelAndView(); 
      mav.setViewName("rssViewer"); 
      mav.addObject("feedContent", items); 

      return mav; 

     } 

} 

根據視圖rssViewer所屬的類CustomRssViewer教程,所以我需要把它寫在調度servlet的以下幾行代碼:

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> 

<bean id="rssViewer" class="com.mkyong.common.rss.CustomRssViewer" /> 

我的問題是,我使用Apache的瓷磚。所以rssViewer無法識別,因爲我沒有增強它的瓷磚定義。我真的不知道我該怎麼做。例如我需要寫一些東西,如下:

<definition name="rssViewer" template="?"> 
    <put-attribute name="title" value=""/> 
    <put-attribute name="content" value=""/> 
    </definition> 

在模板我不知道該怎麼在奚落attribute.Because在模板我用聲明的方向申報以及到現在爲止一個特定的jsp存在。這樣的事情:

template="/WEB-INF/pages/mypage.jsp" 

而且在視圖屬性我不知道我應該申報。

在此先感謝您的任何意見或回覆。

回答

0

您應該使用ContentNegotiatingViewResolver與該示例的BeanNameViewResolver結合使用。只需將已存在的BeanNameViewResolver的order屬性聲明爲1,並將新的ContentNegotiatingViewResolver的order屬性設置爲0.

然後,您應該配置ContentNegotiatingViewResolver以使用適當的RSS視圖,並將媒體類型設置爲RSS。

這裏距離Spring文檔的例子:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="mediaTypes"> 
    <map> 
     <entry key="atom" value="application/atom+xml"/> 
     <entry key="html" value="text/html"/> 
     <entry key="json" value="application/json"/> 
    </map> 
    </property> 
    <property name="viewResolvers"> 
    <list> 
     <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> 
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
     </bean> 
    </list> 
    </property> 
    <property name="defaultViews"> 
    <list> 
     <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 
    </list> 
    </property> 
</bean> 

注意,他們使用的原子,沒有RSS,但這個想法是一樣的。他們也沒有設置順序(你應該這樣做)。