J'ai besoin de vérifier la taille de la liste à vue. J'ai essayé resource.size, item.size, itemList.size, resource.listChildren.size, item.listChildren.size, mais aucun de ces travaux.
Je prévois d'utiliser Java USE-API, mais je ne sais pas par où commencer.
<sly data-sly-list="resource.listChildren"> <sly data-sly-list="item.listChildren"> ${itemList.count} / #I need the total count of item here# </sly> </sly>
5 Réponses :
Puisque Resource # listChildren retournera un Iterator<Resource>
, vous ne pourrez pas obtenir la taille de la liste d'enfants à partir de là.
HTL n'offre pas non plus de moyen d'obtenir la taille de la liste, mais il permet d'obtenir des propriétés intéressantes de l'élément actuel :
* index: zero-based counter (0..length-1); * count: one-based counter (1..length); * first: true for the first element being iterated; * middle: true if element being iterated is neither the first nor the last; * last: true for the last element being iterated; * odd: true if count is odd; * even: true if count is even.
Dans votre liste, vous pouvez utiliser des choses comme $ {itemList.count}, mais cela ne fonctionne que dans data-sly-list:
count
est juste un compteur basé sur 1, n'affichera pas le nombre total d'éléments
<sly data-sly-list.item="resource.listChildren"> <sly data-sly-list.itemList="item.listChildren"> ${itemList.length} / #I need the total count of item here# </sly> </sly>
Essayez d'utiliser la longueur au lieu de la taille et du nombre. Ça marche pour moi.
<sly data-sly-list.demo=“${demo123.items.listChildren}”> <sly data-sly-test=“${demoList.last}”> ${demoList.count}</sly>
Condition de test-> demoList.last -> demoList.count
Fichier Java:
<sly data-sly-use.myCustomModel="my.custom.location.myCustomModel"> ${myCustomModel.myList.size}
HTL:
private List<MycustomObject> myList = new ArrayList<>();
Peut-être dupliquer. Vous devez utiliser une méthode d'écriture pour obtenir la taille si vous le pouvez. stackoverflow.com/questions/36178191/...