2010-01-12 25 views
2

J'ai une page HTML simple qui contient un formulaire (utilise la méthode GET), dont l'action est une page de portail contenant un portlet JSF. J'ai besoin d'accéder aux paramètres transmis à la page du portail dans mon portlet - comment puis-je y parvenir?Comment transmettre et obtenir des paramètres d'URL dans les portlets JSF IBM Webshere Portal 6.1?

J'ai essayé d'accéder au paramètre code sur la page de visualisation en utilisant le code suivant mais la valeur est null.

java.util.Map requestMap = javax.faces.context.FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 
String code = requestMap.get("code"); 

à un autre forum, il a été suggéré que je dois passer le l'ID de portlet comme paramètre de requête afin d'avoir l'accès portlet aux paramètres de la requête passé. Si c'est vrai où/comment puis-je rechercher mon ID de portlet pour que le portlet ait accès aux paramètres de demande?

Répondre

3

Je voudrais vérifier si l'implémentation WebSphere de public render parameters le prend en charge. Si la carte de paramètres de demande ExternalContext n'expose pas ces valeurs, vous pouvez convertir the request en PortletRequest et utiliser la méthode Map<String,String[]> getPublicParameterMap().

+0

À quel endroit la coulée doit-elle être effectuée? Je crois que cela doit être fait avant que la page de vue du portlet ne soit rendue. Une fois la page de vue affichée, les paramètres de la requête sont déjà perdus. –

0

Voir mon article Passer des paramètres de requête aux portlets JSR-286 here.

Je sais que c'est une façon supportée de le faire. J'ai vu d'autres articles qui prétendent que vous pouvez simplement lancer le PortletRequest à quelque chose et obtenir les paramètres. Ceci n'est probablement pas supporté car il dépend d'une implémentation particulière et d'une référence à un nom de classe interne. Je recommande ce qui précède.