留言板

Como especificar na renderURL um outro portlet

thumbnail
Bruno Mori Barata,修改在7 年前。

Como especificar na renderURL um outro portlet

New Member 帖子: 18 加入日期: 16-11-9 最近的帖子
Olá, estou com um pouco de dificuldade com a "renderURL". Eu criei um portlet novo, chamaremos de "Portlet A", e em uma das minhas páginas (que é um simples CRUD), quando eu testo acessando diretamente meu Portlet A funciona normalmente.

O problema é que para eu chegar nesta minha página de CRUD o sistema irá acessa-lo através de outro portlet, chamaremos de "Portlet B" e aí está a complicação, pois quando clico no botão "salvar" na minha página, em vez dele procurar meu método de "save" na classe MVCPortlet doPortlet A, ele acaba procurando na classe MVCPortlet do Portlet B.

Hoje no Portlet B, eu chamo a minha página do Portlet A através de uma "renderURL", desta maneira:

<portlet:renderurl var="editInboxURL">
	<portlet:param name="mvcPath" value="/html/gerenciarinbox/search.jsp" />
	<portlet:param name="eventoId" value="<%= eventoId %>" />
	<portlet:param name="redirect" value="<%= themeDisplay.getURLCurrent()%>" />
</portlet:renderurl>


e acesso desta forma:

<aui:button value="Ir Portlet A" onClick="${editInboxURL}" />


Pensei se existe alguma maneira de no renderURL eu especificar que não quero apenas chamar minha página, mas sim ir para o Portlet dela também, ou seja o Portlet A. E claro, de uma forma que eu consiga mantar meu "eventoId" no request.

Alguém poderia me ajudar?
Obrigado!
thumbnail
Fernando Fernandez,修改在7 年前。

RE: Como especificar na renderURL um outro portlet

Expert 帖子: 396 加入日期: 07-8-22 最近的帖子
Viva Bruno,

Tens a certeza que precisas de dois portlets? Não te basta um portlet que alterne entre dois JSPs diferentes? Ia ficar muito mais simples...

Fernando
thumbnail
Bruno Mori Barata,修改在7 年前。

RE: Como especificar na renderURL um outro portlet

New Member 帖子: 18 加入日期: 16-11-9 最近的帖子
Fernando Fernandez:
Viva Bruno,

Tens a certeza que precisas de dois portlets? Não te basta um portlet que alterne entre dois JSPs diferentes? Ia ficar muito mais simples...

Fernando



Bom dia Fernando, sim preciso de dois Portlets, na realidade este "Portlet B" já existe e estamos criando um novo que possuí outro contexto, porém nesta ocasião específica precisarei acessar minha página do Portlet A através do Portlet B, e surgiu esta complicação.
thumbnail
Fernando Fernandez,修改在7 年前。

RE: Como especificar na renderURL um outro portlet

Expert 帖子: 396 加入日期: 07-8-22 最近的帖子
Bruno,

Nesse caso a minha sugestão é que uses IPC em vez de jogar com as URLs.

Qualquer coisa como isto.

Espero que ajude

Fernando
thumbnail
Bruno Mori Barata,修改在7 年前。

RE: Como especificar na renderURL um outro portlet

New Member 帖子: 18 加入日期: 16-11-9 最近的帖子
Fernando Fernandez:
Bruno,

Nesse caso a minha sugestão é que uses IPC em vez de jogar com as URLs.

Qualquer coisa como isto.

Espero que ajude

Fernando


Obrigado pela dica Fernando!
Bacana através do "<supported-public-render-parameter>"
Problema é que neste caso que geraria um trabalho muito grande pra adaptar todo o código, preciso de algo mais "simples".

Vi que tem um jeito de trabalhar com>
<liferay-portlet:renderurl portletname="{nomePortlet A}" var="editInboxURL"></liferay-portlet:renderurl>


Acho que precisaria de algo neste tipo, porém estou tentando montar a renderURL e por enquanto sem sucesso.

<portlet:renderurl var="editInboxURL" portletname="gopointseventos_WAR_gopointseventosportlet">
	<portlet:param name="mvcPath" value="/html/gerenciarinbox/search.jsp" />
	<portlet:param name="eventoId" value="<%= eventoId %>" />
</portlet:renderurl>
thumbnail
Anderson Perrelli,修改在7 年前。

RE: Como especificar na renderURL um outro portlet (答复)

Junior Member 帖子: 81 加入日期: 13-6-12 最近的帖子
Olá Bruno,

Pelo que eu entendi vc deseja sair de um portletA para um portletB em outra página, certo?

Bom, para isso é possível fazer com a <liferay-portlet:renderURL/> informando o plid que é o ID da página(layout) que o outro portlet se encontra e o portletName, segue um exemplo que acho que pode te ajudar.

Neste caso, ao clicar no botão, você é enviado para a edit.jsp de outro portlet em uma outra página.

<aui:button-row>
	<liferay-portlet:renderurl var="jspURL" plid="11101" portletname="partsportlet_WAR_partsinventoryportlet" portletmode="view">
		<portlet:param name="mvcPath" value="/html/parts/edit.jsp" />
	</liferay-portlet:renderurl>

	<aui:button value="jspportlet" onClick="<%= jspURL %>" />
</aui:button-row>


PS.: Testei na versão 6.2

Abraços
thumbnail
Bruno Mori Barata,修改在7 年前。

RE: Como especificar na renderURL um outro portlet

New Member 帖子: 18 加入日期: 16-11-9 最近的帖子
Anderson Perrelli:
Olá Bruno,

Pelo que eu entendi vc deseja sair de um portletA para um portletB em outra página, certo?

Bom, para isso é possível fazer com a <liferay-portlet:renderURL/> informando o plid que é o ID da página(layout) que o outro portlet se encontra e o portletName, segue um exemplo que acho que pode te ajudar.

Neste caso, ao clicar no botão, você é enviado para a edit.jsp de outro portlet em uma outra página.

<aui:button-row>
	<liferay-portlet:renderurl var="jspURL" plid="11101" portletname="partsportlet_WAR_partsinventoryportlet" portletmode="view">
		<portlet:param name="mvcPath" value="/html/parts/edit.jsp" />
	</liferay-portlet:renderurl>

	<aui:button value="jspportlet" onClick="<%= jspURL %>" />
</aui:button-row>


PS.: Testei na versão 6.2

Abraços



Muito obrigado Anderson, era isto mesmo!
Abraço.