2017-09-13 5 views
0

J'ai donc une action dans un portlet "pA" qui imprime des informations basées sur l'utilisateur connecté, et maintenant j'ai besoin de cette information dans un autre portlet "pB". Au lieu de dupliquer le code, je veux accéder à l'action de porlet "pA" de "pB". Est-ce que c'est possible?Accéder à une action d'un portlet depuis un autre

J'ai réussi des recherches pour arriver à ce au début de « pB »:

<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %> 

<liferay-portlet:actionURL var="name" portletName="pA_WAR_war-of-pA"> 
    <liferay-portlet:param name="view" value="v" /> 
</liferay-portlet:actionURL> 

<h1>URL:: <a href="${name}">${name}</a></h1> 

Mais il génère une URL pour « pB » au lieu de « pA » ???

Répondre

3

Je ne m'inquiéterais pas si c'est possible, parce que c'est un mauvais style. Si vous avez besoin du même code dans deux portlets différents, fournissez-le simplement dans une bibliothèque et utilisez-le dans les deux portlets.

Un portlet, sur la couche d'interface utilisateur, doit être un concept fermé et ne pas avoir d'interdépendance avec d'autres portlets. Une dépendance à une bibliothèque commune est cependant bonne.

+0

Je n'ai pas besoin du même code, je veux les mêmes données à n endroits. C'est pourquoi je veux construire un service web extrêmement simple mais cela ressemble à une cause perdue dans ce cadre. C'est vraiment ce concept étranger d'être en mesure d'obtenir l'utilisateur connecté dans une URL fixe dans Liferay? – Saiyine

+0

C'est ce qu'on appelle la «séparation des préoccupations». Et bien sûr, vous pouvez toujours obtenir l'identité de l'utilisateur actuellement connecté partout, mais votre question ne donne aucun indice que c'est ce que vous aimeriez voir. Corrige moi si je me trompe... –