2010-03-04 23 views
5

Voici le scenerio: Nous avons une application en cours d'exécution sur Webphere Portal Server 6.1 et Spring MVC. Il y a une page avec un seul portlet qui montre une grille pleine d'enregistrements. Une fois l'un de ces enregistrements cliqué, il doit naviguer vers un autre portlet qui réside sur une page différente - peut-être même une application de portlet différente sur le même serveur de portail - et afficher cet enregistrement spécifique.portlets Page de navigation avec des paramètres - Spring MVC, WebSphere Portal, et JSR 286

est ici la question: J'ai lu que, grâce à l'utilisation de Portal 2.0 de « Paramètres de rendu public », vous pouvez partager des données entre portlets - et qui devrait résoudre la plupart de mes problèmes. Le problème est, je ne peux pas trouver comment cela fonctionne lors de l'utilisation de Spring MVC. Je ne trouve pas de référence aux "paramètres de rendu public" dans la documentation technique du MVC du printemps, mais certaines personnes ont dit que cela fonctionnait. Est-ce que quelqu'un peut me montrer spécifiquement où la documentation détaillée sur ceci est, ou me donner le petit morceau de code d'un exemple qui montre comment je peux accéder à ces paramètres publics de rendu dans mes classes de contrôleur? Aussi, s'il y a un meilleur moyen d'y parvenir dans mon environnement, qu'est-ce que c'est et où puis-je trouver un exemple? S'il vous plaît ne répondez pas avec, "Si vous avez besoin de faire cela, vous ne devriez pas utiliser un portail" ou "Si vous utilisez la technologie XYZ à la place, alors vous pouvez faire ceci et cela". Je ne peux pas changer l'environnement - c'est ce que c'est - j'ai juste besoin de le faire fonctionner! :) Merci!

Répondre

3

Vous pouvez utiliser les paramètres de rendu public de la même manière que vous utilisez vos propres paramètres de rendu . Vous n'avez qu'à les déclarer dans votre portlet.xml. Sachez simplement que vous n'avez pas le droit d'avoir des paramètres de rendu publics qui ont le même nom que les paramètres de rendu "privés" .

Vous avez seulement besoin d'ajouter quelque chose comme ceci à votre portlet.xml:

<public-render-parameter> 
     <identifier>myParam</identifier> 
     <qname xmlns:x="http://sun.com/params">x:myParam</qname> 
</public-render-parameter> 

et ajoutez la ligne suivante à votre descripteur de portlet:

<portlet> 
     . . . 
    <supported-public-render-parameter>myParam</supported-public-render-parameter> 
</portlet> 

Ensuite, vous pouvez utiliser les appels getRenderParameter réguliers pour "myParam" dans tous les portlets qui ont cette entrée dans leur descripteur de portlet.

Pour plus d'informations: http://blogs.oracle.com/deepakg/entry/jsr286_public_render_parameter_feature

+0

Oui - Je pense que cela va fonctionner. Ma confusion est venue avec le modèle basé sur l'annotation pour les contrôleurs, parce que vous n'héritez pas d'une classe ou implémente une interface. Après avoir regardé d'autres exemples en conjonction avec votre exemple, je comprends. Merci encore d'avoir aidé un développeur de portlet inexpérimenté! Il y a environ 16 frameworks java que nous utilisons dans une application de portail SOA fortement transactionnelle. C'est beaucoup à prendre en venant d'un arrière-plan .net! –