Bonjour,
En ce qui concerne le redirect,vous pouvez le faire de 2 manières
différentes:
1. actionResponse.sendRedirect(url) (que pendant la méthode
processAction(...) et l'url doit être absolue ): pour plus d'info.
http://www.bluesunrise.com/portlet-api/index.html
2. javascript: document.location = ... : cette méthode est assez
utilisée même si elle ne semble pas être "propre".
Pour ne pas avoir une url qui dépend de l'id de la page jahia, vous
pouvez utiliser des urlKey (propriété de la page).
En ce qui concerne les sessions, il y en a effet 2 : portletSession et
celle de jahia (voir spec. JSR168 ou documentation portlet sur le site
de jahia ).
Pour la portlet session, il y a 2 scopes :
* APPLICATION_SCOPE(attribut est displonnible pour ttes les portlets
et servelt de l'application déployée)
* PORTLET_SCOPE (attribut disponibe que pour la portlet).
Enfin la solution proposée par Jean-François Fournier est bien adaptée à
vos besoins.
Cordialement.
KT.
Jean-François Fournier a écrit :
>
> Salut,
>
> Voici une idée de solution qui ne serait pas du contournement.
>
> Étant donnée que ton « data » semble être dans Jahia (page de
> produit), pourquoi faire un portlet pour la recherche. Jahia est
> équipé pour faire de la recherche. Il y a des
> containerSearcher/filter/sorter. Tu pourrais chercher dans les
> conteneurs qui contiennent les produits.
>
> Pour les redirects, tu fais un formulaire, dans une boite texte de
> jahia, qui pointe vers ton application web. Ton application web reçoit
> en paramètre la recherche et redirige vers la bonne page. Pas besoin
> de portlet. Cependant, dans ton application, tu dois avoir une table
> de correspondance entre tes produits et tes pages. Je ne vois aucune
> façon de faire cela sans hard coder la correspondance. Ce qui n’est
> pas très pratique.
>
> Selon moi tu devrais tout faire à la même place, que ce soit dans un
> portlet (recherche et affichage des résultats) ou dans jahia.
>
> Jeff
>
> ------------------------------------------------------------------------
>
> *De :* [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] *De la part de* Arnaud Lorenzi
> *Envoyé :* 10 décembre 2007 11:59
> *À :* Mailing list francophone de Jahia.
> *Objet :* Re: [French_list] Partage d'information Jahia / Portlet
>
> Merci pour cette réponse, elle m'a donné une idée... un peu mauvaise,
> mais bon, il faut bien avancer.
>
> En fait je ne comprend pas trop l'histoire du redirect, car ce que
> j'ai compris du fonctionnement du portlet, c'est qu'il doit envoyer un
> fragment de HTML, qui est inséré par le portail au sein du cadre (div)
> assigné au portlet. Donc je ne pense pas que je puisse envoyer un
> header de redirection... mais je vais essayer tout de même.
>
> Sinon j'ai pensé à générer un petit bout de code JavaScript au sein de
> la JSP du portlet, qui lorsqu'il est appelé, appelle la bonne page
> (document.location)... C'est violent, pas sexy, mais bon...
>
>
> Si vous avez une meilleure idée, ou une solution de non-contournement,
> merci
>
>
> *Arnaud LORENZI*
> /Manager/
>
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> 18 rue Volney - 75002 Paris (plan)
> <http://maps.google.fr/maps?f=q&hl=fr&q=18,+Rue+Volney,+75002+2%C3%A8me+Arrondissement,+Paris&ie=UTF8&z=17&ll=48.869987,2.330518&spn=0.004107,0.015171&t=h&om=1>
>
>
> Tél. : 01 47 03 43 65 / Fax. : 01 47 03 45 72
> www.neuros.fr <http://www.neuros.fr/>
>
>
>
> Jean-François Fournier a écrit :
>
> Salut,
>
> Est-ce qu’un « redirect » pourrait fonctionner dans ton cas ?
>
> Si oui, tu pourrais submiter directement vers ta webapp (sans le
> encodeURL) et, dans le code de ta webapp, rediriger vers la page Jahia
> désiré.
>
> J’espère que ça pourra t’aider ou te donner des idées.
>
> Jeff
>
> ------------------------------------------------------------------------
>
> *De :* [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> [mailto:[EMAIL PROTECTED] *De la part de* Arnaud Lorenzi
> *Envoyé :* 10 décembre 2007 05:10
> *À :* [email protected] <mailto:[email protected]>
> *Objet :* [French_list] Partage d'information Jahia / Portlet
>
> Bonjour,
>
> J'ai développé un petit portlet pour Jahia. Celui-ci fonctionne bien,
> mais j'ai un besoin supplémentaire. Je vous explique tout d'abord
> brièvement le contexte.
>
> Le portlet est en fait un petit formulaire qui lance une recherche de
> produits.
> Mon problème est que le résultat de la recherche ne doit pas être
> affiché au sein du portlet, mais dans le site Jahia. En effet en
> fonction du résultat de la recherche je dois :
> - si un seul produit est trouvé : aller sur la page du CMS qui
> présente le produit
> - si plusieurs produits sont trouvés : aller sur une page du CMS qui
> liste ces produits
> - si aucun produit n'est trouvé : aller sur une page d'erreur.
> Je me rend bien compte que la techno portlet n'est peut-être paps la
> plus adaptée, mais elle a été retenue pour pouvoir être déployée
> facilement sur d'autre site.
>
> Le portlet doit donc "envoyer" des informations au site Jahia. Ce que
> je voudrais faire, c'est que le portlet (que ce soit au sein du code
> Java, ou au sein de la JSP d'affichage du portlet) place des
> informations dans la session Jahia, afin que ces dernières soient
> disponibles dans les JSP du CMS.
>
> Or j'ai l'impression que cela n'est pas faisable, ou pas facile...
> J'ai l'impression qu'il y a 2 sessions bien séparées : celle de Jahia,
> et celle du portlet. J'ai même l'impression qu'il y a 3 sessions en
> fait : la session de Jahia, la session pour le portlet, et la
> PortletSession.
>
> Au point de vue configuration j'ai fait :
> - jahia.properties : webapps.dispatcher.inheritJahiaSessionAttributes
> = true
> - server.xml de tomcat : dans le connector : emptySessionPath="true"
>
> J'ai essayé d'utiliser la visibilté APPLICATION_SCOPE :
> request.getPortletSession().setAttribute("dureesejour", dureesejour,
> PortletSession.APPLICATION_SCOPE);
> Cela n'a pas d'effet. En fait cela rend disponible les informations
> dans l'objet "session" de la JSP du portlet (en plus de l'objet
> renderRequest.getPortletSession()) , mais pas dans l'objet "session"
> des JSPs de Jahia.
>
> J'ai aussi essayé de déclarer un objet avec des méthodes statiques
> pour stocker/obtenir des données... en espérant que cet objet soit
> visible des 2 côté... et non ! Le portlet et Jahia ne partagent
> apparement pas le même contexte d'exécution.
>
> J'en suis arrivé à me dire qu'il faudrait passer par un stockage en
> base de données, mais je trouve cela un peu lourd pour juste passer
> quelques chaînes de caractères du portlet vers Jahia.
>
>
> Est-ce qu'il y a un moyen pour que Jahia puisse obtenir des données
> générées par un portlet ?
>
> Merci de vos réponses
>
> Crodialement,
>
> --
>
> *Arnaud LORENZI*
> /Manager/
>
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> 18 rue Volney - 75002 Paris (plan)
> <http://maps.google.fr/maps?f=q&hl=fr&q=18,+Rue+Volney,+75002+2%C3%A8me+Arrondissement,+Paris&ie=UTF8&z=17&ll=48.869987,2.330518&spn=0.004107,0.015171&t=h&om=1>
>
>
> Tél. : 01 47 03 43 65 / Fax. : 01 47 03 45 72
> www.neuros.fr <http://www.neuros.fr/>
>
>
>
>
> ------------------------------------------------------------------------
>
>
>
> _______________________________________________
> french_list mailing list
> [email protected] <mailto:[email protected]>
> http://lists.jahia.org/cgi-bin/mailman/listinfo/french_list
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> french_list mailing list
> [email protected]
> http://lists.jahia.org/cgi-bin/mailman/listinfo/french_list
>
_______________________________________________
french_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/french_list