Question

Je suis en train d'écrire ma première application de portlet (pour Liferay, mais la solution doit être récipient agnostique) et je me demande comment les gens à résoudre pour fournir des liens vers l'utilisateur qui « conduisent » à différents portlets (peut-être sur différentes « pages » dans le portail).

Alors que vous pouvez facilement avoir différents modes d'affichage à l'intérieur de votre portlet, comment pouvez-vous créer un lien vers un autre portlet et (peut-être) passent également des paramètres le long?

Je ne parle pas de la communication entre portlets simple, il est le vrai pageflow qui me intéresse.

Exemple: Vous avez la page A avec un portlet qui affiche une liste d'éléments d'information. Ensuite, vous avez la page B qui est de la manière que je voudrais configuré un seul l'élément de nouvelles à afficher (par exemple différents portlets autour d'elle)

Y at-il une solution générique pour créer un lien vers la page B et dire aux nouvelles-détail-portlets devrait montrer l'article XYZ?

La solution rapide et sale serait de configurer le lien cible via le mode d'édition des nouvelles liste portlets. Mais cela présente plusieurs inconvénients: - portlets complexes peuvent avoir plusieurs URL cibles qui conduit à des efforts massifs de configuration pour le portail d'administration - les urls ne peuvent pas suivre un schéma qui permet l'injection de simple paramètre

J'ai une solution à l'esprit, mais cela nécessiterait des efforts massifs et des changements peut-être dans les portlets ciblés, ce qui est pas toujours possible si vous utilisez portlets 3ème partie.

Ma solution ressemblerait à ceci: (! Projet)

Portlets vous inscrire à un service central avec leurs papiers d'identité portlet et quand un portlet veut créer un lien vers un portlet il peut faire une recherche basée sur un nom symbolique. Cela va faciliter la tâche de l'administrateur, car il est possible de « auto découvrir » portlets. Le service peut également fournir une interface utilisateur à portlets de fil en fonction de la source et portlet cible.

La génération d'URL pour portlets qui peuvent être des modifications peut être résolu par l'intermédiaire d'appel de service au portlet qui génère l'URL dans son ensemble avec des paramètres injectés et le renvoie. Pour les portlets que vous ne pouvez pas changer vous devez ajouter les paramètres et nous espérons que cela fonctionne. : - /

Toutes les suggestions? Y at-il des solutions plus simples? les solutions existantes?

Merci!

Patrick

Était-ce utile?

La solution

Pour autant que je sais portlets Spécification ne couvre pas. Il n'y a donc pas de solution portable. Pour Liferay, vous pouvez toujours utiliser la bibliothèque de balises personnalisées leur qui vise exactement cette question. Il existe un mécanisme similaire pour Websphere Portal.

Quelque chose se trouve et ici

En général, je voudrais essayer d'éviter cela et utiliser mécanisme standard IPC (paramètres de rendu publique ou des événements)

Autres conseils

Pour la spécification JSR 286, il est possible d'utiliser des événements pour la communication inter-portlets. Pour le plus JSR 168 il n'y a pas un moyen approuvé pour le faire. Si vous trouvez une manière qui fonctionne pour vous, utilisez-le.

Il y a un vieux livre donné gratuitement de Manning (inscription requise). Vous pouvez trouver quelques idées là-bas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top