Bonjour,

Je suis nouvellement arrivée sur un projet utilisant le framework Seam que je ne connais pas encore. Je dois corriger un problème reproductible systématiquement mais je n'arrive pas à en trouver l'explication (et encore moins la correction à appliquer).

Voilà le problème : sur une page mapage.xhtml (appli en interne, je ne peux donc pas en fournir l'url), il y a une liste de résultats où une boucle est faite sur ce modèle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<c:forEach items="#{monAction.liste}" var="lResultats" varStatus="status">
et en bas de page, il y a un lien qui permet d'ouvrir une popup :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<a4j:commandLink style="font-size : 11px" oncomplete="javascript:popuponclick('mapopup.seam?popupEdit=true&amp;attributId=#{monAction.attributId}','apercusForm','toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,directories=no,status=no')" value="Ma Popup" />
A l'affichage de la page, tout se passe bien. Au clic sur le lien, la popup s'ouvre correctement (mis à part que je ne sais pas trop pourquoi, le attributId est vide dans l'url, mais cela ne semble pas être impactant sur les fonctionnalités de la popup). Cependant, si on ferme la popup et qu'on reclique sur le lien, la première page fait apparaître une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
javax.el.PropertyNotFoundException: /view/demo/mapage.xhtml @64,60 value="#{lResultats.monattribut}": Target Unreachable, identifier 'lResultats' resolved to null
Comme si le fait d'avoir ouvert la popup impliquait la perte de la valeur courante lResultats

Il est vrai qu'il y a de nombreux messages sur internet avec l'erreur que j'ai citée, mais ce n'est pas dans le même cas de figure qu'ici puisque ça marche la première fois. Les solutions proposées ailleurs ne m'ont pas aidées.
J'ai bien testé de placer un attribut @Scope(ScopeType.SESSION) et même un @AutoCreate sur l'action java directement, mais sans résultat (d'autant plus que la classe étendue les possède déjà).

Actuellement, cela ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
@Name("monAction")
@Synchronized(timeout = 10000L)
public class MonAction extends AbstractFormAction
{ ...}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
@AutoCreate
@Scope(ScopeType.SESSION)
@Stateful
public abstract class AbstractFormAction implements IFormAction, Serializable
{ ...}
Avez-vous des suggestions à m'apporter ? Manque-t-il des informations pour que vous puissiez m'aider ?
Merci d'avance.