Est-il possible d'appeler setPropertyActionListener avant actionListener
Je suis actuellement confronté à un problème avec la JSF de l'ordre de l'exécution.
De regarder mon exemple de code:
<p:commandButton action="update.xhtml" ajax="false"
icon="ui-icon-pencil"
actionListener="#{marketingCodeBean.initForUpdate}">
<f:setPropertyActionListener
target="#{marketingCodeBean.marketingCode}" value="#{code}"></f:setPropertyActionListener>
</p:commandButton>
Je voudrais mettre un bean de la propriété à l'aide de setPropertyActionListener, et faire un peu de traitement sur actionListener=initForUpdate. Mais JSF par défaut de la séquence de l'exécution est le contraire, actionListener d'abord avant de setPropertyActionListener. Est-il propre contourner ce problème?
Je pense que je vais avoir un actionListener et passer à la fève de paramètre, mais je ne suis pas sûr si c'est la meilleure approche.
OriginalL'auteur czetsuya | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
C'est en effet un comportement attendu. L'action des auditeurs (
actionListener
,<f:actionListener>
et<f:setPropertyActionListener>
) sont invoqués dans l'ordre ou ils sont enregistrés sur le composant, avec leactionListener
attribut de la première. Il n'est pas possible de modifier l'ordre de cette façon autre que l'ajout de la méthode derrièreactionListener
comme un<f:actionListener>
(qui devrait se référer à une mise en œuvre concrète de la classe deActionListener
interface).Mieux est de l'utiliser juste
action
au lieu deactionListener
. Il est invoqué après d'action tous les auditeurs. L'Action des auditeurs est destiné à "préparer" une action et de les utiliser pour les actions commerciales est en fait une mauvaise pratique.avec
Voir aussi:
Vous êtes les bienvenus.
BalusC vous êtes grand!
J'ai mis en place un travail similaire à l'aide de
action
dansp:dataTable
maisf:setPropertyActionListener
est toujours en prenant les données de l'objet de la première rangée de la table, même quand je clique sur le bouton sur d'autres lignes. Comment obtenir les données de cliqué sur la ligne ??Vous êtes à la recherche dans la mauvaise question. Passer à stackoverflow.com/q/4994458
OriginalL'auteur BalusC