Collection/Tableau contient la méthode
je me demandais si il n'y a contient méthode pour collections/tableau en EL 2.2
ou je vais devoir faire un personnalisé ?
EXIGENCE: j'ai un tableau de chaîne, et je veux savoir si elle contient une chaîne de caractères.
CAS: je suis en boucle sur la liste des entrée des cases à cocher à rendre, et je veux vérifier l'actuel case, si une valeur existe dans le tableau de cases à cocher.
Mise à JOUR:
- est une telle méthode est disponible en EL?
- Si une telle méthode n'est pas disponible, veuillez fournir votre suggestion pour meilleure performance méthode pour un tableau de chaînes contenant un élément.
OriginalL'auteur Mahmoud Saleh | 2011-12-20
Vous devez vous connecter pour publier un commentaire.
Pour un
Collection
c'est facile, il suffit d'utiliser laColleciton#contains()
méthode en EL.Pour un
Object[]
(array), vous aurez besoin d'un minimum de EL 3.0 et d'utiliser son nouveau soutien de Lambda.Si vous n'êtes pas sur EL 3.0 pourtant, vous auriez besoin de créer un personnalisé EL de la fonction. Pour un exemple concret, voir Comment créer un personnalisé EL de la fonction à appeler une méthode statique? E. g.
qui est enregistré comme
et pour être utilisé comme
Ce n'est pas disponible dans la JSTL. Il y a un
fn:contains()
, mais qui fonctionne surString
valeurs seulement.eh bien, je l'utilise sur un attribut d'entrée, mais la méthode n'est pas appelée:
checked="#{utils.contains(myBean.array,'myBean.someIndicator') ? 'checked' : ''}"
Existe-il des EL erreurs? Par la manière, la manière dont vous utilisez
checked
n'est pas tout à fait juste. Une case/case d'option est cochée lorsque l'ensemble de l'attribut est présent, quelle que soit sa valeur. Fondamentalement, vous voulez imprimer le nom de l'attribut au lieu de la valeur de l'attribut conditionnelle.aha, vous, et non, je ne peux pas voir EL erreurs, ne devrait-il pas une exception levée si il y a un EL erreur ?
Utilisez simplement
Integer
au lieu de modifier la méthode de la boucle sur le tableau au lieu de convertirint[]
àList<int>
(qui n'est pas valide).OriginalL'auteur BalusC
Si vous utilisez un
String[]
, vous pouvez d'abord concaténer tous les éléments d'un tableau en une chaîne à l'aide defn:join()
:Et ensuite utiliser le
fn:contains()
la fonction, afin de vérifier si une valeur existe dans cette chaîne:${ param.stringArray }
de la case à cocher valeurs.OriginalL'auteur Sergio Ortega