Показать разные страницы портлета в соответствии с PortletPreferences - PullRequest
0 голосов
/ 18 июля 2011

У меня есть портлет, который обрабатывает тарифы и категории тарифов.Я использую Liferay 5.2.3 и Spring Portlet Framework.


Портлет должен работать в двух режимах при добавлении на страницу:

  1. отображать главный экран - стандартный режим (MainScreenController)
  2. отображать подробности категории тарифа(TariffCategoryController) - когда задано предпочтение портлета "showCategoryDetail"

Я не могу понять, как изменить / переслать запрос в TariffCategoryController, когда задано предпочтение портлета.Можете ли вы дать мне подсказку?Спасибо!

@Controller("mainScreenController")
@RequestMapping("VIEW")
public class MainScreenController {

    @RenderMapping
    public String handleRenderRequest() {
        return "mainScreen";
    }

    ...
}


@Controller("tariffCategoryController")
@RequestMapping("VIEW")
public class TariffCategoryController {

    @RenderMapping(params = "myaction=showTariffCategory")
    public String handleRenderRequest() {
        return "tariffCategory";
    }

    ...
}

1 Ответ

0 голосов
/ 17 марта 2012

Стандартный Spring DefaultAnnotationHandlerMapping не работает с настройками портлета.Если вам нужна такая функциональность, вам будет довольно легко написать свою собственную реализацию HandlerMapping .

Но я бы предложил другой подход .Показывать вид по умолчанию независимо от каких-либо предпочтений. Если предпочтение не установлено, отобразится сообщение «1009 *« требуется конфигурация » со ссылкой на РЕДАКТИРОВАНИЕ .Зачем?Поскольку настройки следует редактировать только в режиме РЕДАКТИРОВАНИЯ, и вам не потребуется маршрутизация на основе настроек портлета.

...