Plusieurs d'action des auditeurs avec une seule commande, composant JSF
Est-il possible d'invoquer plus d'une méthode d'écouteur à l'aide d'une seule commande, composant? Par exemple,
Une vue étendue de haricot:
@ManagedBean
@ViewScoped
public final class ViewScopedBean implements Serializable
{
@ManagedProperty(value = "#{sessionScopedBean}")
private SessionScopedBean sessionScopedBean; //Getter/Setter.
private static final long serialVersionUID = 1L;
public ViewScopedBean() {}
public void action()
{
//Do something.
sessionScopedBean.action();
}
}
Une session d'étendue de haricot:
@ManagedBean
@SessionScoped
public final class SessionScopedBean implements Serializable
{
private static final long serialVersionUID = 1L;
public SessionScopedBean () {}
public void action() {
//Do something.
}
}
Un bouton de commande comme celui donné ci-dessous,
<h:commandButton value="Action" actionListener="#{viewScopedBean.action}"/>
appelle la méthode action()
dans ViewScopedBean
qui à son tour appelle la action()
méthode dans SessionScopedBean
par injection d'une instance de bean.
Est en quelque sorte possible de faire la même chose sur le XHTML ainsi qu'un besoin d'injecter un haricot juste pour appeler une méthode peut être éliminé?
OriginalL'auteur Tiny | 2014-07-17
Vous devez vous connecter pour publier un commentaire.
Utilisation
<f:actionListener de liaison>
:Note de l'importance des parenthèses dans EL. L'omission serait, dans cet exemple particulier, autrement jeter une confusion
javax.el.PropertyNotFoundException: Property 'action' not found on type com.example.ViewScopedBean
, parce que c'est par défaut interprété comme une expression de valeur. L'ajout de parenthèses en fait une méthode d'expression. Voir aussi Pourquoi suis-je en mesure de lier <f:actionListener> une méthode arbitraire si elle n'est pas soutenu par l'ACI?Vous pouvez même ajouter un
actionListener
et/ou unaction
méthode pour le composant de la manière habituelle, qui est invoquée plus tard. Ce qu'il a à être unique, c'est leaction
méthode, qui décide de l' résultat pour le traitement.De toute façon, gardez à l'esprit que les auditeurs sont toujours exécutées avant l'action et considéré comme un "échauffement". Votre meilleur est à effectuer l'ensemble de la logique dans la méthode de l'action, même si vous avez besoin de faire haricot injections.
Voir aussi:
OriginalL'auteur Xtreme Biker