EL expression à l'intérieur de p:commandButton onclick ne met pas à jour/re-rendu sur requête ajax?

La onclick attribut de mon commandButton a quelques EL dépendant de Javascript à l'intérieur. Pour être plus précis, voici le morceau de code:

<p:commandButton
    onclick="javascript: if('#{userBean.user.friendList.size() gt 0}' == 'true') deleteFriendsConfirmDialog.show(); else friendsAlreadyDeletedErrorDialog.show();"
    value="Delete all friends?" />

deleteFriendsConfirmDialog efface la liste des amis et des mises à jour de la @form. La liste d'amis, bouton de commande et les boîtes de dialogue sont tous sous cette forme.

Donc je clique sur le bouton, la boîte de dialogue de confirmation apparaît (en raison de la longueur de la liste d'amis est gt 0), je confirme, et la liste est vidée, la vue est mise à jour. Cependant, lorsque je clique sur le Delete all friends? bouton une fois de plus, la boîte de dialogue de confirmation. Puisque la longueur de la liste est maintenant à 0, j'ai plutôt s'attendre à la boîte de dialogue d'erreur à afficher.

Qui, je pense, c'est parce que le Javascript écrit à l'intérieur de onclick n'est pas mis à jour (bien que le bouton est dans la forme).

Edit: Changer #{userBean.user.friendList.size() gt 0} à #{not empty userBean.user.friendList} ne fonctionne pas non plus.

Comment venir? Quel est le problème ici?

Toute aide appréciée. 🙂

OriginalL'auteur Murat Derya Özen | 2012-01-11