wicket:container et l’ajax

Je viens de perdre une demi heure à me casser les dents sur un truc très stupide. Je voulais donc en parler rapidement ici, peut être que ça vous épargnerait de perdre du temps dessus un de ces jours.

La version courte

Ne jamais utiliser <wicket:container> avec l’ajax !!!!

La version longue

[Suite:]

J’ai mis dans le html :

<wicket:container wicket:id=details"></wicket:container>

Côté Java, j’y avais associé un EmptyPanel (initialement) :

add(new EmptyPanel("details").setOutputMarkupId(true));

Et je voualis mettre à jour son contenu via ajax suite à un clic sur un autre élément de la page :

PersonDetailsPanel personDetailsPanel = new PersonDetailsPanel( 
    "details", new Model<Person>(p)); 
personDetailsPanel.setOutputMarkupId(true); 
addOrReplace(personDetailsPanel); 
if (target != null) { 
  target.addComponent(new PersonDetailsPanel( 
      "details", new Model<Person>(p)).setOutputMarkupId(true)); 
  
}

A l’exécution, j’obtiens un comportement bizarre : Au premier clic, ça met à jour la page html, mais les clics suivants bien que traités côté serveur ne mettent pas à jour le panel.
D’autres fois, même le premier clic ne fonctionnait pas.

Pour finir, je tiens à adresser mes remerciements les plus sincères à la console «Ajax Debug» de Wicket qui m’a permis de résoudre ce problème ! :))

—-

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: