2010-09-20 5 views
0

Je ne peux pas recevoir le paramètre de l'URl lorsque j'appelle un autre portlet en utilisant le bouton de commande dans Jsf dans JSR 168. En fait, j'appelle la méthode de mon manageBean à partir du bouton de commande où je génère l'URL et en appelant un autre portlet. Mais je ne suis pas en mesure de recevoir le paramètre dans mon autre manageBean du portlet appelé. Est-ce que quelqu'un peut me dire où je me trompe?Passage du paramètre URL en utilisant la commande Button dans le portail jsf en utilisant Jsr 168

Répondre

1

Pour récupérer les paramètres d'URL de portlet JSR 168; vous avez l'un des trois choix (pour autant que je sache):

  1. Création d'un filtre au niveau du serveur Websphere Application et la configuration dynamique du cache pour stocker la chaîne de requête alors vous serez en mesure d'obtenir un paramètre attaché à tout lien généré par portlet même sans utiliser de mappage d'URL en prenant en compte la taille du cache dynamique.

  2. Vous devez saisir le paramètre dans la première phase du cycle de vie de portlet qui est appelé « doView » et en jetant le RenderRequest à HttpServletRequest alors vous serez en mesure de les récupérer à partir de la méthode getQueryString() (vous ne serez pas en mesure pour les capturer de la méthode getParameter de RenderRequest même si la spécification mentionnait que) et après cela vous pouvez envoyer à n'importe quelle page de votre application.

  3. La troisième façon, si vous essayez de générer un lien vers un portlet à l'aide des balises URL génération, vous êtes autorisé à ajouter le paramètre à ce lien et capturer dans doView par la même manière que ci-dessous:

<wps:urlGeneration contentNode="MyApp.app" portletWindowState="Maximized" newWindow="True"> 
    <wps:urlParam name="MyParam" value="Hi There"/> 
    <a href="<% wpsURL.write(out); %>" target="_blank" >My Link</a> 
</wps:urlGeneration> 

public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { 
    HttpServletRequest httpServletRequest = (HttpServletRequest) request; 
    System.out.println("The parameter is: "+httpServletRequest.getQueryString()); 
    super.doView(request, response);  
} 

Note: Le code complet de votre cycle de vie de portlet sera par défaut dans un paquet com.ibm.{your project name} et RSA vous demandera si vous voulez qu'il soit disponible ou non au début de la création du projet et si vous ne l'avez pas rendu disponible, vous devez toujours pouvez le créer en remplaçant votre <portlet-class> de votre portlet par portlet.xml.

Questions connexes