Fluxo MVC Básico do Portlet Liferay e Seleção de Visualização

Estou tentando desenvolver um portlet básico com o LifeRay 6.1. Sou bem versado com várias implementações do MVC, mas acho que os portlets Liferay / java são um pouco confusos - especialmente o pipeline de execução.

Com a maioria dos frameworks MVC eu trabalhei com a premissa é simple request> router> controller> view. A seleção de exibição é geralmente baseada na convenção de nomenclatura controlador / ação, um parâmetro transmitido com a solicitação ou é carregado manualmente na ação do controlador.

Com o LifeRay MVCPortlet, não funciona assim; Há pelo menos dois tipos de URL que podem ser gerados: um URL de renderização e um URL de ação.

O URL de renderização parece ignorar totalmente o que eu considero ser o controlador - uma subclasse de MVCPortlet. Parece que esses URLs são relativamente fáceis de gerar ea requisição carrega a visão esperada, se você pode chamá-la de que, considerando para todos os efeitos, ela ignora completamente o controlador e não tem nada a ver com um modelo.

<portlet:renderURL var="badminURL"><portlet:param name="mvcPath" value="/views/edit.jsp" /></portlet:renderURL>

O URL da ação passa pelo controlador, a ação é chamada e, em seguida, a exibição padrão é usada para renderizar o portlet, independentemente do que eu forneço como um caminho mvc.

<portlet:actionURL var="adminURL" name="editSlide"><portlet:param name="mvcPath" value="/views/edit.jsp" /></portlet:actionURL>

Ao ler a árvore de classes, vejo que uma propriedade é usada para definir a exibição que é usada, dependendo do modo do portlet. isto é

this.viewTemplate = "/views/edit.jsp";
this.editTemplate = "/views/edit.jsp";

Mais uma vez, configurar isto após o init () ser chamado apenas parece ter algum efeito quando não é acessado através de um actionURL.

Então, eu acho que a minha pergunta é bem básica, como as views são selecionadas e como eu escolho uma para usar ao usar um actionURL. Também qualquer esboço no pipeline de execução seria muito útil

questionAnswers(1)

yourAnswerToTheQuestion