Maison  >  Article  >  interface Web  >  Comment transmettre des paramètres à p:remoteCommand dans PrimeFaces à partir de JavaScript ?

Comment transmettre des paramètres à p:remoteCommand dans PrimeFaces à partir de JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 14:01:31311parcourir

How to Pass Parameters to p:remoteCommand in PrimeFaces from JavaScript?

Passer des paramètres à p:remoteCommand à partir de JavaScript

Le composant p:remoteCommand dans PrimeFaces fournit un moyen pratique d'exécuter des actions côté serveur à partir de JavaScript. La transmission de paramètres à la commande distante est possible, permettant un transfert dynamique de données entre le client et le serveur.

PrimeFaces 3.3 et plus récent

Dans PrimeFaces 3.3 et versions plus récentes, la syntaxe pour transmettre les paramètres à p:remoteCommand a changé. Vous pouvez spécifier plusieurs valeurs pour un seul paramètre en utilisant la syntaxe suivante :

functionName([{name:'x', value:10}, {name:'y', value:20}]);

Dans le backing bean, vous pouvez accéder à ces paramètres en utilisant "@ManagedProperty" ou via des cartes de paramètres de requête :

@ManagedProperty(value = "#{param.x}")
private int x;

@ManagedProperty(value = "#{param.y}")
private int y;
<code class="java">Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
int x = Integer.valueOf(params.get("x"));
int y = Integer.valueOf(params.get("y"));</code>

PrimeFaces 3.2 et versions antérieures

Dans PrimeFaces 3.2 et versions antérieures, la syntaxe de transmission des paramètres était la suivante :

increment({param1:'val1', param2:'val2'});

Dans le support bean, vous pouvez accéder aux paramètres de la même manière que décrit pour PrimeFaces 3.3 ou version ultérieure.

Remarque concernant les valeurs multiples

Avant PrimeFaces 3.3, il n'était pas possible de transmettre plusieurs valeurs pour un seul paramètre. Pour surmonter cette limitation, vous pouvez utiliser la syntaxe suivante dans PrimeFaces 3.3 ou version ultérieure :

functionName([{name:'foo', value:'one'}, {name:'foo', value:'two'}, {name:'foo', value:'three'}]);

Dans le bean de sauvegarde, vous pouvez accéder à plusieurs valeurs pour un paramètre en utilisant "@ManagedProperty" ou via des cartes de valeurs de paramètres de requête. :

@ManagedProperty(value = "#{paramValues.foo}")
private String[] foos;
<code class="java">Map<String, String[]> paramValues = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterValuesMap();
String[] foos = paramValues.get("foo");</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn