Если вы используете Spring MVC, то я бы рекомендовал использовать портлет. Весной портлеты - это просто облегченные контроллеры, поскольку они отвечают только за фрагмент всей страницы и очень просты в написании. Если вы используете Spring 2.5, то вы можете пользоваться всеми преимуществами новой поддержки аннотаций и хорошо вписываться во все приложение Spring с помощью инъекции зависимостей и другими преимуществами использования Spring.
Контроллер портлет почти так же, как контроллер сервлета, вот простой пример:
@RequestMapping("VIEW")
@Controller
public class NewsPortlet {
private NewsService newsService;
@Autowired
public NewsPortlet(NewsService newsService) {
this.newsService = newsService;
}
@RequestMapping(method = RequestMethod.GET)
public String view(Model model) {
model.addAttribute(newsService.getLatests(10));
return "news";
}
}
Здесь, NewsService будет автоматически вводится в контроллер. Метод view добавляет объект List к модели, который будет доступен как $ {newsList} в JSP. Spring будет искать представление с именем news.jsp на основе возвращаемого значения метода. Команда RequestMapping сообщает Spring, что этот contoller предназначен для режима VIEW портлета.
Конфигурации XML необходимо только указать, где вид и контроллеры расположены:
<!-- look for controllers and services here -->
<context:component-scan base-package="com.example.news"/>
<!-- look for views here -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/news/"/>
<property name="suffix" value=".jsp"/>
</bean>
Если вы хотите, чтобы просто вставить портлет в существующих приложениях, то вы можете связать портлет контейнер, такие как eXo , Sun, или Apache. Если вы хотите создать приложение в виде набора портлетов, вам может потребоваться рассмотреть полномасштабное решение портала, например Liferay Portal.
thnx для полезного ответа, есть ли у вас опыт работы с портлетами MVC Spring? Некоторые учебники, руководства? Может быть, может порекомендовать сервер портала? – moriarty 2008-09-16 14:12:23