Сопоставление запросов с помощью Spring Portlet MVC 3 - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть страница портала с двумя окнами. Каждое окно представляет экземпляр аннотированного портлета Spring Portlet MVC.

В обоих портлетах (контроллерах) у меня есть "default" @RequestMapping; Могу ли я определить в аннотации @RequestMapping, какой запрос на рендеринг должен выполняться? По некоторым причинам одно и то же сопоставление (только один контроллер) выполняется для обоих запросов.

1 Ответ

1 голос
/ 04 мая 2011

Я покажу свой подход к этому, так как мне нужно было обрабатывать запросы к главному представлению с одним контроллером, а запросы к всплывающему окну, являющемуся частью портлета с другим контроллером, используя Spring MVC 3.0.5.

Основной контроллер будет вызываться, если в запросе отсутствует параметр с именем view, и всплывающий контроллер, если параметр view имеет значение «popup». Вот весенняя конфигурация приложения с портлетами и аннотации, установленные на контроллерах:

Конфигурация Spring: app-portlet.xml

Важно! Обратите внимание, что пакет является org.springframework.web. portlet .mvc.annotation, и не используйте вместо вместо сопоставления обработчика, так как он будет регистрировать сопоставления обработчика сервлета.

<!-- Scan the desired package for annotations -->
<context:component-scan 
 base-package="com.company.project.myportlet" />

<!-- Handler mappings for annotation based controllers -->
<bean         
 class="org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean      
 class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

Главный контроллер

package com.company.project.myportlet;
@Controller
@RequestMapping(value="VIEW",params="!view")
public class MainPageController {
    //...
}

Всплывающий контроллер

package com.company.project.myportlet;
@Controller
@RequestMapping(value="VIEW",params="view=popup")
public class PopupController {
    //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...