Рубрики
Без рубрики

Пример канала Spring 3 MVC и RSS

– Пример канала Spring 3 MVC и RSS

Весной 3 поставляется с абстрактным классом ” AbstractRssFeedView ” для создания представления RSS-канала, используя java.net посылка из РИМА. В этом уроке мы покажем вам, как создать представление RSS-канала из Spring MVC framework.

Используемые технологии:

  1. Пружина 3.0.5.ВЫПУСК
  2. РИМ 1.0.0
  3. JDK 1.6
  4. Затмение 3.6
  5. Мавен 3

В конце урока, когда вы посетите этот URL–адрес – http://localhost:8080/SpringMVC/rest/rssfeed , браузер вернет следующий контент RSS-канала:



  
    Mkyong Dot Com
    http://www.mkyong.com
    Java Tutorials and Examples
    
      Spring MVC Tutorial 1
      http://www.mkyong.com/spring-mvc/tutorial-1
      Tutorial 1 summary ...
      Tue, 26 Jul 2011 02:26:08 GMT
    
    
      Spring MVC Tutorial 2
      http://www.mkyong.com/spring-mvc/tutorial-2
      Tutorial 2 summary ...
      Tue, 26 Jul 2011 02:26:08 GMT
    
  

1. Структура каталогов

Просмотрите окончательную структуру проекта.

2. Зависимости проекта

Для Maven объявляет следующие зависимости в вашем pom.xml .

	
		3.0.5.RELEASE
	

	

		
		
			org.springframework
			spring-core
			${spring.version}
		

		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
		
			net.java.dev.rome
			rome
			1.0.0
		

		
		
			javax.servlet
			servlet-api
			2.5
			provided
		

	

3. Модель

Простой POJO, позже используйте этот объект для создания содержимого RSS-канала.

package com.mkyong.common.model;

import java.util.Date;

public class SampleContent {

	String title;
	String url;
	String summary;
	Date createdDate;

	//getter and seeter methods
}

4. Представление абстрактной ленты

Создание класса расширяется AbstractRssFeedView , и переопределить buildFeedMetadata//. и buildFeedItems методы, приведенные ниже, должны быть понятны.

package com.mkyong.common.rss;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.feed.AbstractRssFeedView;
import com.mkyong.common.model.SampleContent;
import com.sun.syndication.feed.rss.Channel;
import com.sun.syndication.feed.rss.Content;
import com.sun.syndication.feed.rss.Item;

public class CustomRssViewer extends AbstractRssFeedView {

	@Override
	protected void buildFeedMetadata(Map model, Channel feed,
		HttpServletRequest request) {
		
		feed.setTitle("Mkyong Dot Com");
		feed.setDescription("Java Tutorials and Examples");
		feed.setLink("http://www.mkyong.com");
		
		super.buildFeedMetadata(model, feed, request);
	}
	
	
	@Override
	protected List buildFeedItems(Map model,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
		
		@SuppressWarnings("unchecked")
		List listContent = (List) model.get("feedContent");
		List items = new ArrayList(listContent.size());
		
		for(SampleContent tempContent : listContent ){
		
			Item item = new Item();
			
			Content content = new Content();
			content.setValue(tempContent.getSummary());
			item.setContent(content);
			
			item.setTitle(tempContent.getTitle());
			item.setLink(tempContent.getUrl());
			item.setPubDate(tempContent.getCreatedDate());
			
			items.add(item);
		}
		
		return items;
	}

}

5. Контроллер

Класс контроллера Spring MVC, создайте содержимое rss-канала и верните имя представления ” Просмотрщик rss ” (Это имя представления относится к указанному выше ” CustomRssViewer “, будет зарегистрировано на шаге 6 позже).

package com.mkyong.common.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.mkyong.common.model.SampleContent;

@Controller
public class RssController {

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

		List items = new ArrayList();
		
		SampleContent content  = new SampleContent();
		content.setTitle("Spring MVC Tutorial 1");
		content.setUrl("http://www.mkyong.com/spring-mvc/tutorial-1");
		content.setSummary("Tutorial 1 summary ...");
		content.setCreatedDate(new Date());
		items.add(content);
		
		SampleContent content2  = new SampleContent();
		content2.setTitle("Spring MVC Tutorial 2");
		content2.setUrl("http://www.mkyong.com/spring-mvc/tutorial-2");
		content2.setSummary("Tutorial 2 summary ...");
		content2.setCreatedDate(new Date());
		items.add(content2);
		
		ModelAndView mav = new ModelAndView();
		mav.setViewName("rssViewer");
		mav.addObject("feedContent", items);
		
		return mav;

	}
	
}

6. Регистрация Весенних Бобов

В файле определения компонента Spring включите автоматическое сканирование компонентов и зарегистрируйте свой класс ” customrssviewer ” и ” преобразователь представлений BeanNameViewResolver “, чтобы при возврате имени представления ” RSSVIEWER “Spring знал, что он должен соответствовать идентификатору компонента ” RSSVIEWER “.

Файл: mvc-dispatcher-servlet.xml



	

	
	

	


7. Демонстрация

URL: http://localhost:8080/SpringMVC/rest/rssfeed

Скачать Исходный Код

Рекомендации

  1. Рим – Библиотека Java для RSS-канала
  2. Представление абстрактной ленты Явадок
  3. Пример создания RSS-канала на Java

Оригинал: “https://mkyong.com/spring-mvc/spring-3-mvc-and-rss-feed-example/”