Apache Struts 2 Documentation > Home > Guides > Tag Developers Guide > Struts Tags > Tag Reference > UI Tag Reference > tree
Added by Rene Gielen, last edited by Dave Newton on Apr 02, 2007  (view change) show comment

Description

Renders a tree widget with AJAX support.

The id attribute is normally specified, such that it could be looked up using javascript if necessary.

Quick Example

This example describes basic usage of the <s:tree.../> tag showing both the model behind the tree and the JSP fragment that uses it. This section of the documentation is a work-in-progress; more to follow.

Backing Model
/**
 * In this example it is assumed that the backing POJO is a tree-like structure
 * consisting of same-type elements, roughly like the following, with getters
 * and setters not shown for clarity.
 *
 * This could be, say, a Hibernate/etc. POJO stored in a database and loaded lazily, etc.
 *
 * TODO Determine allowable collection types; I know for a fact Set works.
 */
public class TreeModel {
    private Long _id;                 // Node's ID.
    private String _name;             // Node's name property.
    private Set<TreeModel> _children; // Node's children.
}
Action
/**
 * Fragment of Action class showing the minimum necessary to support the
 * following JSP code. Getters, setters, functionality not shown.
 */
public class ShowTreeAction {
    private TreeModel _rootNode;      // Top-level tree node.
}
JSP
<!-- 
  - @attrib rootNode 
  -             OGNL value holding top-level tree node.
  - @attrib childCollectionProperty 
  -             Property of rootNode containing child nodes.
  - @attrib nodeIdProperty
  -             Property of each node containing "value" of node, like an ID.
  - @attrib nodeTitleProperty
  -             Property of each node containing tree label text.
  -->
<s:tree theme="ajax"
        rootNode="%{rootNode}"
        childCollectionProperty="children"
        nodeIdProperty="id"
        nodeTitleProperty="name">
</s:tree>

Parameters

Name

Required

Default

Evaluated

Type

Description

accesskey false true String Set the html accesskey attribute on rendered html element
blankIconSrc false true String Blank icon image source.
childCollectionProperty false true String The childCollectionProperty property.
cssClass false true String The css class to use for element
cssStyle false true String The css style to use for element
disabled false true String Set the html disabled attribute on rendered html element
expandIconSrcMinus false true String Expand icon image source.
expandIconSrcPlus false true String Expand Icon image source.
gridIconSrcC false true String Image source for under child item child icons.
gridIconSrcL false true String Image source for last child grid.
gridIconSrcP false true String Image source for under parent item child icons.
gridIconSrcV false true String Image source for vertical line.
gridIconSrcX false true String Image source for grid for sole root item.
gridIconSrcY false true String Image source for grid for last root item.
iconHeight false 18px true String Icon height
iconWidth false 19px true String Icon width
id false true String The id to use for the element
key false true String Set the key (name, value, label) for this particular component
label false true String Label expression used for rendering a element specific label
labelposition false true String Define label position of form element (top/left)
name false true String The name to set for element
nodeIdProperty false true String The nodeIdProperty property.
nodeTitleProperty false true String The nodeTitleProperty property.
onblur false true String Set the html onblur attribute on rendered html element
onchange false true String Set the html onchange attribute on rendered html element
onclick false true String Set the html onclick attribute on rendered html element
ondblclick false true String Set the html ondblclick attribute on rendered html element
onfocus false true String Set the html onfocus attribute on rendered html element
onkeydown false true String Set the html onkeydown attribute on rendered html element
onkeypress false true String Set the html onkeypress attribute on rendered html element
onkeyup false true String Set the html onkeyup attribute on rendered html element
onmousedown false true String Set the html onmousedown attribute on rendered html element
onmousemove false true String Set the html onmousemove attribute on rendered html element
onmouseout false true String Set the html onmouseout attribute on rendered html element
onmouseover false true String Set the html onmouseover attribute on rendered html element
onmouseup false true String Set the html onmouseup attribute on rendered html element
onselect false true String Set the html onselect attribute on rendered html element
openTemplate false true String Set template to use for opening the rendered html.
required false false true Boolean If set to true, the rendered element will indicate that input is required
requiredposition false true String Define required position of required form element (left|right)
rootNode false true String The rootNode property.
showGrid false true true Boolean Show grid
showRootGrid false true String The showRootGrid property (default true).
tabindex false true String Set the html tabindex attribute on rendered html element
template false true String The template (other than default) to use for rendering the element
templateCssPath false {contextPath}/struts/tree.css. true String Template css path
templateDir false true String The template directory.
title false true String Set the html title attribute on rendered html element
toggle false fade true String The toggle property (either 'explode' or 'fade')
toggleDuration false 150 true String Toggle duration in milliseconds
tooltip false true String Set the tooltip of this particular component
tooltipConfig false true String Set the tooltip configuration
treeCollapsedTopic false true String The treeCollapsedTopic property.
treeExpandedTopic false true String The treeExpandedTopic property.
treeSelectedTopic false true String The treeSelectedTopic property
value false true String Preset the value of input element.

Examples

&lt-- statically --> <s:tree id="..." label="..."> <s:treenode id="..." label="..." /> <s:treenode id="..." label="..."> <s:treenode id="..." label="..." /> <s:treenode id="..." label="..." /> &;lt;/s:treenode> <s:treenode id="..." label="..." /> </s:tree>

<-- dynamically --> <s:tree id="..." rootNode="..." nodeIdProperty="..." nodeTitleProperty="..." childCollectionProperty="..." />