2010-12-06 62 views
0

Dans mon fichier JSF, j'ai un bouton de commande qui ressemble à ceci:passant dans une liste de chaînes à un haricot jsf

'< h: Valeur commandButton = « Démarrer ». action = '# {myBean.startIt}' />

startIt() est une méthode sans argument qui possède une ArrayList de chaînes de caractères codée en dur. Ce que je voudrais vraiment faire est de passer un nombre variable de chaînes à startIt(), et se débarrasser du codage en dur.

Si j'essaie la syntaxe "vararg", par ex.

startIt public void (String ... myStrings) {...}

-je obtenir l'erreur suivante lorsque j'appelle la fonction avec une même une seule chaîne:

nombre incorrect de nombre argumentswrong d'arguments class java.lang.IllegalArgumentException

Des idées sur la façon de faire fonctionner varargs avec JSF 2 ou, à défaut, une autre solution au problème sous-jacent seraient très appréciées.

Merci.

Répondre

0

L'une des façons dont vous pouvez le faire en spécifiant la valeur dans le f: élément et reterving alors param cette valeur dans backing bean:

 
<h:commandLink actionListener="#{myBean.startIt}"> 
    <f:param name="request" value="AnyValue"/> 
</h:commandLink> 

Sauvegarde code Bean:

 
String request= (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("request");