Navigation dans l'arborescence
Les beans Content, Layout et Portlet représentent chacun une hiérarchie sous forme d'arborescence. Les méthodes de navigation de base sont identiques pour les trois. Un bean d'arborescence fournit des méthodes pour accéder au noeud racine, examiner le parent et les enfants dans un noeud et maintenir un curseur pointant sur un noeud sélectionné dans l'arborescence.
Les exemples de code utilisent le bean Content, mais vous pouvez effectuer les mêmes opérations sur les autres beans d'arborescence. La racine de commande renvoie l'ID du noeud racine comme point de départ fixe de navigation.
Jython : Content.root()
Jacl : $Content root
Vous pouvez sélectionner un noeud via son ID, à l'aide de la commande select. Vous pouvez annuler la sélection en cours à l'aide des commandes deselect ou select sans argument. Vous pouvez renvoyer l'ID du noeud sélectionné via la commande current. Dans le cadre d'une utilisation interactive, csn est un alias de current.
Content.select ID
Content.deselect
Content.current
Content.csn
# example: select the root node
Content.select(Content.root())
$Content select ID
$Content deselect
$Content current
$Content csn
# example: select the root node
$Content select [$Content root]
La commande path renvoie une liste de tous les ID de la racine vers le noeud sélectionné. De la même manière, la commande children renvoie les enfants du noeud sélectionné. Vous pouvez obtenir l'ID du parent du noeud sélectionné à l'aide de la commande parent.
Content.path
Content.parent
Content.children
# example: select a node and print its children
Content.select(node_ID)
for child in Content.children().split():
print child$Content path
$Content parent
$Content children
# example: select a node and print its children
$Content select node_ID
foreach child [$Content children] { puts "$child" }Vous pouvez également utiliser les commandes path, parent et children avec un ID explicite ou lieu de faire implicitement référence au noeud actuellement sélectionné.
Content.path(ID)
Content.parent(ID)
Content.children(ID)$Content path ID
$Content parent ID
$Content children IDPour des raisons de simplicité, il existe des commandes de sélection dédiées au noeud de racine et au parent du noeud sélectionné. Dans l'exemple qui suit, le premier argument est fictif, afin de distinguer la méthode de la sélection à l'aide d'un argument d'ID. L'argument fictif n'est pas interprété. Le second argument est un mot clé, qui ne dépend pas de la casse. D'autres mots clés plus courts sont documentés dans l'aide sur les beans.
Content.select("the", "root")
Content.select("the", "parent")$Content select the root
$Content select the parent