JaliosXperience
fr en
Link

Ajax-refresh et attributs

Nicolas Plessis - on 2/27/09 at 6:43 PM

Bonjour et merci pour cet article très instructif.

J'utilise désormais "intensivement" ajax-refresh et je viens de rencontrer quelque chose que je n'arrive pas à faire.

Mon portail dispose de deux portlets :

  • une première positionne un attribut dans la requête
  • une seconde qui possède des liens ajax-refresh pour la mettre à jour et qui a besoin de l'attribut positionné par la première portlet à chaque rafraichissement.

J'ai bien vérifié en mode debug que le rendu de la première portlet s'effectue avant la seconde.

Lorsque j'affiche mon portail pour la première fois, l'attribut positionné par la première portlet est correctement récupéré par la seconde. En revanche lorsque la seconde se rafraichit via les liens ajax-refresh, impossible de récupérer l'attribut.

J'ai essayé plusieurs méthodes :

  • la première portlet positionne l'attribut via request.setAttribute()
  • la première portlet positionne l'attribut via jcmsContext.setAjaxRequestAttribute()
  • la seconde récupère l'attribut par request.getAttribute()
  • la seconde récupère l'attribut par jcmsContext.getAjaxRequestAttribute()
  • la seconde récupère l'attribut par request.getAttribute() et si il est non null, le repositionne via un jcmsContext.setAjaxRequestAttribute()

Les tests ont été effectués sous JCMS 6.0.0 (je vais tenter de mettre à jour vers la 6.0.1).

Est-il possible de faire cela ? Si oui comment ?

Merci d'avance

Jean-Phillipe Encausse - on 3/2/09 at 10:48 AM

Bonjour,

Pour qu'un attribut de requête soit persisté à travers Ajax-Refresh il faut utiliser les methodes:

  • jcmsContext.setAjaxRequestAttribute();
  • jcmsContext.getAjaxRequestAttribute();

En principe ces méthodes alimentent une Map qui sera accessible en Ajax tout comme les objets Portal, currentCategory, ...

Nous avons corrigé un bug (JCMS-1817) en JCMS 6.0SP1 (6.0.1) qui pourrait corriger ce problème. Je vais tester.

Jean-Phillipe Encausse - on 3/2/09 at 12:23 PM

Bonjour,

Après avoir effectué plusieurs tests je pense que c'est un bug (JCMS-1854) qui sera intégré dans JCMS 6.0 SP2.

Je vais essayer de faire un patch pour la SP1 en avance de phase.

Login   Home   fr en
JALIOS SA - SIREN 440 126 035